强制SSH不打印“远程主机标识已更改”警告


23

有没有办法避免ssh打印这样的警告消息?

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",

尽管远程主机标识已更改,但是我知道这很好,只是想摆脱此警告。

Answers:


16

四种方式:

要使用新的主机密钥仅一次连接到系统而不必回答问题,请使用以下选项进行连接:

ssh -q -o "StrictHostKeyChecking no" this.one.host.name

要永久删除所有系统的警告,请编辑~/.ssh/config文件以添加以下行:

Host *
StrictHostKeyChecking no

要永久删除所有警告,这一个服务器,编辑您的~/.ssh/config文件,并添加以下几行:

Host this.one.hostname
StrictHostKeyChecking no  

要删除该服务器对此更改的警告,请从以下位置删除该服务器的主机密钥: ~/.ssh/known_hosts。下次连接时,将添加新的主机密钥。


在第二个选项中,必须在我们要连接的服务器端完成配置吗?
coffeMug ​​2014年

不,$HOME/.ssh/config在第二个和第三个选项中,重要的是您自己。
珍妮·D

这仍然会为我打印警告(尽管它确实允许连接)。
Michael Mior

24

将此添加到您的〜/ .ssh / config中:

Host 10.*                            # use your own pattern here, eg. *.example.com, example.*.com
  StrictHostKeyChecking   no         # turn off the HostKey check                                                               
  LogLevel                ERROR      # keep it from printing to STDOUT
  UserKnownHostsFile      /dev/null  # (optional) add the host automatically to a black hole, otherwise it would be added to ~/.ssh/known_hosts and show you a warning/message at the top of your session. You may want it added to known_hosts if your shell uses `ssh` autocompletion, such as fish. 

3
修改-只有一个实际回答了问题的人-这是唯一的答案,不仅可以解决问题,而且可以消除警告。
布拉德(Brad)

糟糕,鱼壳用户看来如果将UserKnownHostFile放到/ dev / null,将无法对先前连接的主机使用漂亮的ssh自动完成功能。鱼类使用者,也许每个人都不应设置该值。
伊利亚·林恩

您最好明确地ssh0编写脚本/别名/函数ssh -o UserKnowHostsFile=/dev/null -o LogLevel=ERROR并使用,而不要将这些选项转储到中~/.ssh/config。您可能会忘记它们,然后想知道为什么当您只希望它们起作用时这些检查不起作用。
比利叔叔

20

您可以取出该主机的线路~/.ssh/known_host(每个主机都有一条线路作为条目)。

替代方法是使用:

ssh -q -o "StrictHostKeyChecking no" ....

只是使用-qssh默默地失败。


9

有时不希望将主机密钥添加到默认的$ HOME / .ssh / known_hosts中。

-o UserKnownHostsFile=/dev/null除了-q和之外,还可以使用-o StrictHostKeyChecking=no来使known_hosts整洁。这是一个例子:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q user@scripts.local

2

另一种建议是确定为什么更改主机密钥,并使其停止执行。

例如:如果要在容器中或通过置备系统构建主机,请确保每个实例始终使用相同的已知主机密钥。

我很清楚这并非总是可能的,并且主机的管理可能不在您的控制范围之内,但是这些主机键警告是有原因的并且很重要。减少异常计数是一件好事。

否则,我只为您所关注的特定主机在您的StrictHostKeyChecking No中投票~/.ssh/config

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.