如何避免对已知主机的SSH主机验证?


169

每次尝试使用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)? 

7
/ dev / null对于认为自己在中间攻击中不受人类影响的人而言是存在的:)
Tim Post

1
最糟糕的部分:键入y以节省时间,但它抱怨Please type 'yes' or 'no': :(时)
ADTC

Answers:


232

使用该-o选项,

ssh -o "StrictHostKeyChecking no" user@host

1
您可能要使用带有'-i'标志的备用身份文件
MUY Belgium

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

101

将以下行添加到/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


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

1
您最聪明的一个。
Darth Egregious

30
哈!告诉我老婆
JimFred 2014年

30

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

请注意,如果~/.ssh/known_hosts由于某种原因(例如权限问题)而无法写,那么每次连接时都会提示您。


6
问题是是否有避免提示的提示?
shantanuo

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

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

1
它说“每次”,所以这个答案非常合适
tarikakyol

11

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

与仅禁用提示相比,优点是SSH可以实际检查是否存在MITM攻击。


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

1

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

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

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

0

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

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

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


1
重点改变带来更丑陋消息atsigns一盒WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ,并IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!在全部大写。仅当中没有条目时,问题中的消息才会出现known_hosts
dave_thompson_085

-1

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

chmod 0600 ~/.ssh/known_hosts
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.