当我使用 ssh 连接另一台机器时,每次我都用是/否回答这个问题 -
user@computer$ ssh user@host
This host key is known by the following other names/addresses
~/.ssh/known_hosts:xx: [hashed name]
~/.ssh/known_hosts:xx: [hashed name]
Are you sure you want to continue connecting (yes/no/[fingerprint])?
然后,我一直给予yes
,然后我才能访问另一台机器
我知道有一个参数可以ssh
在连接时删除这个问题,ssh
并且StrictHostKeyChecking=accept-new
它有效,我只需简单地输入密码而无需回答上述问题。
我看了一些答案,但我没有完全搞清楚
使用 ssh 是否与上面的问题中StrictHostKeyChecking=accept-new
给出的相同?yes
我不知道其他机器[关于信任],但我肯定需要使用访问ssh
并回答上述问题yes
并输入密码,然后我完成我的工作。
还有其他方法可以在连接时消除这个问题吗ssh
?
谢谢
答案1
如果您设置StrictHostKeyChecking
为,SSH 将向您的 hosts 文件添加新密钥。这与设置为并始终连接到新主机accept-new
相同。在这两种情况下,SSH 都会自动添加密钥。但是,如果主机已知并且它更改了密钥(创建新密钥、中间人等),则设置将StrictHostKeyChecking
no
accept-new
不是允许连接到该主机,而设置no
将允许它。
当你设置StrictHostKeyChecking
为时,yes
你必须手动更新已知主机文件。上面的第二个示例将失败,在第一个示例中,SSH 将不是与该主机建立连接。