一、ssh连接时出现serverrefusedourkey错误怎么办?
# 代码示例 ssh ubuntu@192.168.0.10 -i /path/to/private/key # 解析说明 当我们使用ssh连接远程主机时,如果服务端拒绝了我们所提供的私钥,就会出现"serverrefusedourkey"错误。这通常是因为拒绝的私钥不在服务器的authorized_keys文件中。 在以上代码示例中,我们可以尝试使用-i选项指定正确的私钥文件路径来解决该问题。
解决该问题的方法还有:
1、检查authorized_keys文件是否包含正确的公钥:
cat ~/.ssh/id_rsa.pub | ssh ubuntu@192.168.0.10 'cat >> ~/.ssh/authorized_keys'
2、重启ssh服务:
sudo service ssh restart
二、为什么ssh连接时会出现serverrefusedourkey错误?
1、私钥不匹配:
当我们生成公钥和私钥时,如果私钥出现了任何问题(比如损坏、修改或重命名),服务器将无法识别该私钥,从而拒绝连接。
2、没有正确设置权限:
在我们连接远程主机时,ssh客户端需要读取私钥文件,如果私钥文件没有正确的权限设置,也会出现”serverrefusedourkey”错误。
3、服务器未在authorized_keys文件中添加你的公钥:
我们需要将我们的公钥添加到authorized_keys文件中,否则服务器将无法识别我们的私钥。
三、如何避免ssh连接时出现serverrefusedourkey错误?
1、使用ssh-agent:
ssh-agent是用于管理私钥的工具。ssh-agent将私钥加入到代理中,避免了每次ssh连接时都需要输入密码或指定私钥的问题。使用以下命令启动ssh-agent:
eval $(ssh-agent)
2、使用ssh-copy-id:
ssh-copy-id是一个简单的脚本,可以自动将我们的公钥添加到目标主机的authorized_keys文件中。使用以下命令运行ssh-copy-id:
ssh-copy-id ubuntu@192.168.0.10
3、使用ssh配置文件:
我们可以使用ssh配置文件来配置ssh客户端,避免每次连接时都必须指定私钥和用户名等信息。示例:
Host myserver HostName 192.168.0.10 Port 22 User ubuntu IdentityFile /path/to/my/key
以上是一些避免出现”serverrefusedourkey”错误的有效方法。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/190678.html