我是一名非 sudo 用户,尝试通过 ssh 连接到另一台服务器。当我这样做时,它抱怨主机的主机密钥和 IP 地址已根据 known_hosts 文件发生变化(确实如此)。不幸的是,我无法更改 known_hosts 文件,并且使用该-o StrictHostKeyChecking=no
选项会禁用密码验证。
答案1
我无法更改
known_hosts
文件
如果你可以复制它,那么你可以更改副本,然后告诉ssh
使用该副本。相关选项ssh_config
是:
GlobalKnownHostsFile
指定用于全局主机密钥数据库的一个或多个文件,以空格分隔。默认值为/etc/ssh/ssh_known_hosts
,/etc/ssh/ssh_known_hosts2
。
UserKnownHostsFile
指定用于用户主机密钥数据库的一个或多个文件,以空格分隔。默认值为~/.ssh/known_hosts
,~/.ssh/known_hosts2
。
(来源)
可是等等!你说
使用该
-o StrictHostKeyChecking=no
选项将禁用密码验证。
我认为不是选项禁用了密码验证。而是新服务器不允许密码验证。这意味着任何允许您实际连接到此特定服务器的方法都无法与密码验证一起使用。无论您绕过过时的文件还是known_hosts
修复它,都没有关系;服务器本身配置为不允许密码。
如果你确定这是正确的服务器然后要求服务器管理员允许密码(或者他们可能会提供其他身份验证方式)。请本地管理员更新文件known_hosts
。