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

cof*_*Mug 27 ssh

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

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Run Code Online (Sandbox Code Playgroud)

虽然远程主机身份已更改,但我知道这很好,只是想摆脱此警告。

Eli*_*ynn 32

将此添加到您的 ~/.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. 
Run Code Online (Sandbox Code Playgroud)

  • MOD UP - 只有一个真正回答了这个问题 - 这是不仅可以工作而且可以抑制警告的唯一答案。 (5认同)

Tim*_*imo 21

您可以删除该主机的行~/.ssh/known_host(每个主机都有一行作为条目)。

替代方法是使用:

ssh -q -o "StrictHostKeyChecking no" ....
Run Code Online (Sandbox Code Playgroud)

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


Jen*_*y D 20

四种方式:

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

ssh -q -o "StrictHostKeyChecking no" this.one.host.name
Run Code Online (Sandbox Code Playgroud)

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

Host *
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)

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

Host this.one.hostname
StrictHostKeyChecking no  
Run Code Online (Sandbox Code Playgroud)

要删除针对这台服务器的这一更改的警告,请从 中删除该服务器的主机密钥~/.ssh/known_hosts。下次连接时,将添加新的主机密钥。


小智 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
Run Code Online (Sandbox Code Playgroud)