2010-03-29 09:43:00 +0000 2010-03-29 09:43:00 +0000
181
181

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

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

答案 (8)

254
254
254
2010-03-29 10:53:30 +0000

使用-o选项,

ssh -o "StrictHostKeyChecking no" user@host
```。
108
108
108
2013-08-06 21:56:17 +0000

/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

28
28
28
2010-03-29 09:47:30 +0000

你应该只有在第一次连接到新主机时才会得到这个提示。当你回复yes后,主机会被存储在~/.ssh/known_hosts中,下次连接时就不会有提示了。

请注意,如果~/.ssh/known_hosts因为任何原因无法写入(例如权限问题),那么你每次连接时都会得到提示。

11
11
11
2010-06-08 22:29:47 +0000

最好的方法(因为它不牺牲安全性)是用一个客户端连接一次所有的计算机(每次都会提示你,总是回答是)。正如在另一个答案中所指出的,这些密钥将被存储在 ~/.ssh/known/_hosts 中。然后把这个文件复制到你以后可能要连接的每一台客户端计算机上(可能是为你使用的每一个用户账户)。然后所有这些账户都会 “知道 "这些计算机,因此不会有提示。

比起仅仅禁用提示的好处是SSH可以实际检查是否有MITM攻击。

1
1
1
2015-07-11 23:20:24 +0000

如果你想禁用确认,而不是认证,你可以使用这个选项。"-o CheckHostIP=no"

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no brin@8.8.8.8
```。
0
0
0
2015-12-12 18:09:32 +0000

这可能是因为你的ssh密钥服务器发生了变化,因为服务器的ip或域名是一样的,但ssh密钥不匹配。

你必须删除/home/$user/.ssh/known_hosts中存储的密钥才能避免这个消息。

我修复了它,删除了该文件中的所有密钥,所以为这个域名创建了新的令牌。

0
0
0
2020-01-27 07:10:41 +0000

我也遇到过类似的问题,尽管使用了上面提到的验证过的解决方案,但我的ssh还是不能工作,这是因为~/.ssh/目录下缺少已知/hosts文件,而且文件系统是只读的,所以在运行时我也无法创建~/.ssh/known/hosts文件。所以在运行时我也无法创建 ~/.ssh/known/hosts 文件。

如果你面临类似的问题,那么看看你是否可以在/tmp位置写入 known/hosts文件。即使在只读的文件系统中,这也大多是启用写的。

之后在ssh命令中可以指定ssh从/tmp位置读取已知/hosts文件。

ssh -o UserKnownHostsFile=/tmp/known_hosts -o StrictHostKeyChecking=no user_name@destination_server_ip
``` 在ssh命令中,你可以指定ssh从/tmp位置读取已知_hosts文件。
-2
-2
-2
2018-11-09 12:14:07 +0000

检查你的~/.ssh/known_hosts文件的权限。当我遇到这个问题时,我的权限是不正确的。我用以下方法解决了这个问题。

chmod 0600 ~/.ssh/known_hosts