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


9

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

-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选项可以避免这样做,那么我宁愿使用它。

Answers:


14

我从这里的答案中看到更多其他选择。

选项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将阻止出现纪尧姆提到的警告。

1
美丽。那就是我想要的。这仅用于一个特定的脚本。它用于DR,我希望能够登录到已克隆到DR环境的生产服务器。IP地址已从生产IP中更改,但不能保证将相同的IP用于相同的服务器以进行后续的DR测试,因此,如果避免将它们添加到known_hosts文件中,则有助于避免在连接过程中出现连接问题后续的DR测试。谢谢堆。
沃里克

@沃里克,不客气。:)
Ramesh 2014年
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.