使用 SSH 连接到新服务器,而不将主机密钥存储在 $HOME/.ssh/known_host 文件中

使用 SSH 连接到新服务器,而不将主机密钥存储在 $HOME/.ssh/known_host 文件中

如果运行以下命令,我会得到以下输出:

-bash-3.2$ ssh -o "StrictHostKeyChecking no" 192.168.1.77
Warning: Permanently added '192.168.1.77' (RSA) to the list of known hosts.
Last login: Fri Jul  4 10:49:11 2014 from chlorine.example.com
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
-bash-3.2$

我想运行此命令,而不将 192.168.1.77 添加到已知主机列表中,但仍然允许成功登录。

是否有 SSH 选项允许这样做?我已经浏览了该man页面ssh_config,并尝试了所有可能的选项,例如设置,"CheckHostIP no"但没有成功。

本地和远程系统都运行 Solaris 10。

如果有必要,我可以在建立连接之前备份$HOME/.ssh/known_hosts文件,并在建立连接后恢复它,但如果有一个 SSH 选项可以让我避免这样做,那么我更愿意使用它。

答案1

我从答案中看到了更多选项这里

选项1:

-o "UserKnownHostsFile /dev/null"

选项2:

如果您想要这种行为,因为您正在使用云服务器(AWS EC2、Rackspace CloudServers 等),或者您不断在 Vagrant 中配置新映像,您可能需要更新 SSH 配置,而不是添加 bash 别名或更多选项命令行。

考虑添加类似的内容:

  Host *.mydomain.com 
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User foo
  LogLevel QUIET
  • 尽可能严格地使用主机的正则表达式以确保安全。
  • 将 LogLevel 设置为 QUIET 将阻止 Guillaume 提到的警告出现。

相关内容