解决ssh不能添加已访问的主机到信任列表的问题(Failed to add the host to the list of known hosts) ....

解决ssh不能添加已访问的主机到信任列表的问题(Failed to add the host to the list of known hosts)

在ssh访问一个服务器的时候第一次会提示签名验证,只要同意之后就会将这个host添加到~/.ssh中的known_hosts中,以后再连接就不会再出现提示了。
原来在ubuntu和freebsd下都没有这个问题。在Gentoo中就有点问题。今天解决了一下,在gentoo-user的mail list中找到了答案。
正常的情况应该是这样的:
rory@gentoo ~ $ ssh xxx.xxx.com
The authenticity of host 'xxx.xxx.com (218.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 6e:6b:0f:2a:b8:91:3f:c8:f0:39:e4:df:b4:d8:16:6b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.com,218.xxx.xxx.xxx' (RSA) to the list of known hosts.
rory@xxx.xxx.com's password:

可是Gentoo中每次都出现:
rory@gentoo ~ $ ssh xxx.xxx.com
The authenticity of host 'xxx.xxx.com (218.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 6e:6b:0f:2a:b8:91:3f:c8:f0:39:e4:df:b4:d8:16:6b.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts
rory@xxx.xxx.com's password:

根据这位作者的回复:
http://www.mail-archive.com/gentoo-user@lists.gentoo.org/msg55719.html
可能是因为使用root用户来移动过home目录,应该修改一下.ssh的用户和权限
  1. chownusername:/home/username/.ssh
  2. chownusername:/home/username/.ssh/*
  3. chmod700/home/username/.ssh
  4. chmod600/home/username.ssh/*
chown username: /home/username/.ssh
chown username: /home/username/.ssh/*
chmod 700 /home/username/.ssh
chmod 600 /home/username.ssh/*

可是我看我的/home/rory/.ssh目录的用户和组都是正常的。所以就是因为目录的权限不对。对照作者说的我的.ssh没有x权限。所以我执行了 chmod 700 /home/rory/.ssh 。这样一切就正常了。
在ssh访问一个服务器的时候第一次会提示签名验证,只要同意之后就会将这个host添加到~/.ssh中的known_hosts中,以后再连接就不会再出现提示了。
原来在ubuntu和freebsd下都没有这个问题。在Gentoo中就有点问题。今天解决了一下,在gentoo-user的mail list中找到了答案。
正常的情况应该是这样的:
rory@gentoo ~ $ ssh xxx.xxx.com
The authenticity of host 'xxx.xxx.com (218.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 6e:6b:0f:2a:b8:91:3f:c8:f0:39:e4:df:b4:d8:16:6b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.xxx.com,218.xxx.xxx.xxx' (RSA) to the list of known hosts.
rory@xxx.xxx.com's password:

可是Gentoo中每次都出现:
rory@gentoo ~ $ ssh xxx.xxx.com
The authenticity of host 'xxx.xxx.com (218.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is 6e:6b:0f:2a:b8:91:3f:c8:f0:39:e4:df:b4:d8:16:6b.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts
rory@xxx.xxx.com's password:

根据这位作者的回复:
http://www.mail-archive.com/gentoo-user@lists.gentoo.org/msg55719.html
可能是因为使用root用户来移动过home目录,应该修改一下.ssh的用户和权限
  1. chownusername:/home/username/.ssh
  2. chownusername:/home/username/.ssh/*
  3. chmod700/home/username/.ssh
  4. chmod600/home/username.ssh/*
chown username: /home/username/.ssh
chown username: /home/username/.ssh/*
chmod 700 /home/username/.ssh
chmod 600 /home/username.ssh/*

可是我看我的/home/rory/.ssh目录的用户和组都是正常的。所以就是因为目录的权限不对。对照作者说的我的.ssh没有x权限。所以我执行了 chmod 700 /home/rory/.ssh 。这样一切就正常了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当使用Ansible时,可能会遇到这样的错误提示:“added 'ip' (ecdsa) to the list of known hosts”。这个错误提示表示Ansible试图将目标主机的IP地址添加到已知主机列表中。 这个错误通常是由于第一次连接到远程主机时引起的,Ansible将主机密钥添加到~/.ssh/known_hosts文件中。这是Ansible的正常行为,以确保安全连接和身份验证。 要解决这个问题,有以下几种方法: 1. 忽略已知主机检查:在执行Ansible命令时,可以使用`-k`参数或`--ask-pass`参数来忽略对已知主机的检查。例如,`ansible-playbook -i inventory.ini playbook.yaml -k`。这个方法虽然简单,但会牺牲一部分安全性。 2. 更新known_hosts文件:如果你确定目标主机是安全的,你可以手动更新`~/.ssh/known_hosts`文件,添加目标主机的IP地址和密钥。你可以使用SSH命令`ssh-keyscan`来获取主机密钥并添加known_hosts文件中。例如,`ssh-keyscan -H ip >> ~/.ssh/known_hosts`。这样做的好处是避免了每次连接时的询问,但仍保持了一定的安全性。 3. 使用ssh-keygen重新生成密钥:如果你不确定目标主机的安全性,你可以尝试使用`ssh-keygen`命令生成新的公钥和私钥。然后,将新的公钥复制到目标主机的`~/.ssh/authorized_keys`文件中。这样可以确保安全连接和身份验证。 无论你选择哪种方法,记得在操作之前确保备份重要的配置文件和数据,以免意外损失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值