100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ssh连接The authenticity of host can‘t be established

ssh连接The authenticity of host can‘t be established

时间:2022-07-26 22:13:35

相关推荐

ssh连接The authenticity of host can‘t be established

问题描述:

使用ssh远程连接的时候报如下错误:

解决办法:

输入如下命令:

ssh -o StrictHostKeyChecking=noroot@123.59.xx.xx

输入密码,链接成功

其他解决方案:

vi ~/.ssh/known_hosts

删除与想要连接的主机相关的行;或者直接删除known_hosts这个文件。 当然这个方案也是可行的,但并非解决问题的根本办法,因为继续使用,今后还会出现这样的情况,还得再删除。

下面简单讲一下这个问题的原理和比较长久的解决方案。

用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。

SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。简单描述下它的三种配置值:

StrictHostKeyChecking=no

#最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。

StrictHostKeyChecking=ask #默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。StrictHostKeyChecking=yes #最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。

对于测试环境来说,为了方便,选择最低的安全级别。在.ssh/config(或者/etc/ssh/ssh_config)中修改配置文件,配置如下:

最后面添加:修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题

StrictHostKeyChecking noUserKnownHostsFile /dev/null

建立SSH的信任关系

以实现 node1 免密码给 node2 scp传输文件为例说明,需要如下几个步骤:

1、生成 node1 的秘钥(私钥和公钥)

1)进入 node1 的/root/.ssh目录

cd /root/.ssh/

2)执行如下命令,生成公钥和私钥(此时,一路回车即可)

ssh-keygen -t rsa

其中,id_rsa是私钥,id_rsa.pub是公钥。

2、将 node1 的 id_rsa.pub中的内容追加到 node2 的authorized_keys 认证文件中

1)将 node1 的公钥(id_rsa.pub)信息,输出到临时认证文件authorized_keys_node1 中

cat id_rsa.pub >authorized_keys_node1

2)将authorized_keys_node1 文件 scp 到/root/.ssh/ 目录下

scp authorized_keys_node1 root@node2:/root/.ssh/

3)登录到node2节点,进入 /root/.ssh目录

cd /root/.ssh/

4)将 node1 的公钥信息,追加到 node2 的认证文件(authorized_keys)中

cat authorized_keys_node1 >>authorized_keys

至此,node1 到 node2 的信任关系建立好了,node1 scp文件到 node2,就不在需要输入密码验证了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。