每次尝试使用SSH连接服务器时,都会出现以下提示。我输入“是”,但是有办法避免吗?

The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)? 


评论

/ dev / null对于认为自己在中间攻击中不受人免疫的人而言是存在的:)

最糟糕的部分:键入y可以节省一些时间,但它抱怨:请键入“是”或“否”:(hmph)

类似于askubuntu.com/questions/87449/…

#1 楼

使用-o选项,

ssh -o "StrictHostKeyChecking no" user@host


评论


您可能要使用带有标志“ -i”的备用身份文件

–MUY比利时
13年4月22日在10:08

使用备用身份文件有什么用?我的意思是,如果您要连接到受感染的主机,那么对身份验证的方式会有什么不同-这并不意味着受感染的主机也可以窃取密钥。

– Dagelf
2015年6月2日,10:16

#2 楼

将以下行添加到/etc/ssh/ssh_config的开头...

Host 192.168.0.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null


选项:


主机子网可以是*到允许不受限制地访问所有IP。
编辑/etc/ssh/ssh_config进行全局配置,或者编辑~/.ssh/config进行用户特定的配置。

请参见http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

评论


可惜我只能投票给你一次。将KnownHosts设置为/ dev / null是天才。

– J0hnG4lt
2014年8月8日15:15

您最聪明的一个。

–黑暗无耻
2014年9月5日于20:08

哈!告诉我老婆

– JimFred
2014年9月6日下午21:16

这应该是答案

– Miquel
20-11-18在12:21

#3 楼

您应该仅在首次连接到新主机时得到此信息。响应yes后,主机将存储在~/.ssh/known_hosts中,下次连接时将不会出现提示。每次连接时都会提示。

评论


问题是仍然有避免提示的地方吗?

–山塔诺
2010-3-29在10:44

我尝试将“ CheckHostIP no”添加到/ etc / ssh / ssh_config文件。但是它似乎没有用

–山塔诺
10 Mar 29 '10在10:46

sudo chown -R user:user .ssh;须藤chmod 700 .ssh;须藤chmod -R 600 .ssh /; ssh-keygen -R $ hostname并重新连接,应该可以解决所有问题,并且只有在ssk_Hostkey与|更改或您是MITM的受害者。

–linuxdev2013
2015年12月12日23:28

它说“每次”,所以这个答案超级合适

– tarikakyol
18年1月23日在14:27

不,这是一个糟糕的答案,因为很明显这使这个家伙感到震惊,否则他不会问这个问题。对我来说,也是因为我有一个IT部门,该部门决定他们需要定期“清理” known_hosts文件。

–帕特里克·莫平(Patrick Maupin)
20年9月3日,0:56

#4 楼

最好的方法(因为它不会牺牲安全性)是从一个客户端一次连接到所有计算机(每次都会提示您,始终回答是)。如另一个答案所指出的,密钥将存储在〜/ .ssh / known_hosts中。然后将此文件复制到以后可能要连接的每台客户端计算机上(可能是所用的每个用户帐户)。这样,所有这些帐户都将“知道”计算机,因此没有提示。

评论


虽然,如果您经常通过前向连接ssh进行操作,则将其添加到/ etc / ssh / ssh_config中:主机127.0.0.1 NoHostAuthenticationForLocalhost是

– Dagelf
2015年6月2日,10:14

#5 楼

如果要禁用确认而不是认证,则可以使用以下选项:“ -o CheckHostIP = no”

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no brin@8.8.8.8


评论


OP已经获得了相同的答案并接受了它。

–阿扬
15年7月12日在4:03

#6 楼

这可能是因为您的ssh密钥服务器已更改,因为服务器ip或域相同,但ssh密钥不匹配。

必须删除/home/$user/.ssh/known_hosts中存储的密钥,以避免出现此消息。

我修复了它删除该文件中所有键的问题,因此为此域名创建了新令牌。

评论


更改了密钥后,会产生一个更加丑陋的消息,并带有一个标志,警告:远程主机标识已更改!而且可能有人在做某些NASTY!大写。仅当known_hosts中没有条目时,问题中的消息才会出现。

–dave_thompson_085
2015年12月15日下午6:15

#7 楼

我遇到了类似的问题,尽管使用了上述经过验证的解决方案,但我的ssh无法正常工作,原因是〜/ .ssh /目录中缺少known_hosts文件,并且文件系统是只读的。因此,在运行时也无法创建〜/ .ssh / known_hosts文件。即使在只读文件系统中,大多数情况下也会启用写操作。
ssh -o UserKnownHostsFile=/tmp/known_hosts -o StrictHostKeyChecking=no user_name@destination_server_ip


#8 楼

检查您的~/.ssh/known_hosts文件的权限。当我遇到这个问题时,我的不正确。我用以下方法修复它:

chmod 0600 ~/.ssh/known_hosts