我成功使用
ssh -q -i pubkey [email protected] 'halt'
多年来一直致力于从 Linux 机器上停止 FreeBSD 系统 (FreeNAS)。
突然间,一切都停止了:ssh 使用此命令永远挂起。由于这是在备份脚本中使用的,所以这是一场灾难。
发生了什么事,导致这种情况突然发生?问题更可能出现在服务器端(FreeBSD)还是客户端(Linux)。我该如何修复它(在客户端)?
答案1
检查您的 SSH 客户端配置。TCPKeepAlive
不应no
为客户端设置为。
答案2
您是否尝试过手动 ssh 登录?
ssh -i pubkey [email protected]
我唯一的猜测是,无论出于什么原因,客户端的 known_hosts 都被更改、删除等。或者其中的条目不再匹配,这是有可能的。如果 openssl 在服务器端被更改(升级?),那么 known_hosts 条目将不匹配。
因此,当您使用 ssh 时,即使使用公钥,如果 known_hosts 不存在,您也会得到以下信息:
无法确认主机“192.168.200.122 (192.168.200.122)”的真实性。RSA 密钥指纹为 fa:7c:54:45:70:c2:70:f9:f2:3c:c9:75:4d:83:10:5b。您确定要继续连接吗(是/否)?
所以它正在等待你接受
如果不匹配,您将获得此信息
测试:~/.ssh # ssh 192.168.200.122 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 警告:远程主机标识已更改! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 可能有人正在做一些恶意的事情! 有人可能正在窃听您(中间人攻击)! RSA 主机密钥也可能刚刚被更改。远程主机发送的 RSA 密钥的指纹为 fa:7c:54:45:70:c2:70:f9:f2:3c:c9:75:4d:83:10:5b。请联系您的系统管理员。在 /root/.ssh/known_hosts 中添加正确的主机密钥以消除此消息。/root/.ssh/known_hosts:1 中的违规密钥 192.168.200.122 的 RSA 主机密钥已更改,您已请求严格检查。主机密钥验证失败。测试:~/.ssh #
因此请手动尝试。如果不存在,则需要接受它,然后会创建 known_hosts 条目,下次您使用 ssh 时应该就可以了
如果不匹配,则编辑 ~/.ssh/known_hosts 并删除该主机的条目。然后当您再次手动 ssh 登录时,接受它并重新创建 known_hosts 条目。
这是我唯一能想到的办法。希望就是这个!