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

War*_*ick 9 ssh solaris ssh-config

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

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

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

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

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

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

Ram*_*esh 14

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

选项1:

-o "UserKnownHostsFile /dev/null"
Run Code Online (Sandbox Code Playgroud)

选项 2:

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

考虑添加如下内容:

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