ssh连接 故障排查 | 4个SSH连接失效的常见原因
作为DevOps或者IT专业人士,人们经常会疑惑为什么不能通过SSH访问服务器。这种情况时有发生,相当头疼。
在今天的文章中,我们将尝试总结各种常见的SSH失败原因,以帮助大家更顺利的解决。
1.我们的SSH公钥没有注入到服务器中
密码形式的SSH很危险。目前大部分服务器只接受基于密钥文件的SSH。以下是具体流程:
我们生成一个SSH密钥对(或者更进一步,用密码保护私钥)
向服务器管理器发送SSH公钥
管理员注入我们的SSH公钥(一般是~/)。ssh/authorized_keys)
然后就可以用SSH了
好了,我们正式来看看最常见的SSH故障!
denny @笔记本电脑:/# ssh root@www.dennyzhang.com
权限被拒绝(publickey)。
上述故障信息可能有两个原因:
(1).私钥没有登录权限。公钥没有正确注入或者公钥已经丢失。
注意:如果暂时无法联系到运维/DevOps人员,先考虑团队中还有谁可以访问SSH。事实上,任何拥有SSH访问权限的人都可以进行这样的更改。
(2)本地SSH公钥和私钥没有正确配对。
在连接之前,SSH会检查我们的公钥和私钥是否正确配对。如果没有,它会默默拒绝使用私钥。是的,在沉默中。
这种错误很可能源于一些自动生成的脚本。另外,如果我们只使用与公钥不匹配的有效私钥,也不会造成错误。
2.防火墙阻止我们连接
出于安全原因,人们可能会实施严格的防火墙策略,这意味着只有特定的IP才能建立SSH连接。
denny @笔记本电脑:/# ssh root@www.dennyzhang.com
ssh:连接到主机www.dennyzhang.com端口22:连接被拒绝
#用telnet确认。通常它应该连接两个线圈
denny @笔记本电脑:/# telnet www.dennyzhang.com
尝试104.237.149.124...
在上述情况下,你可能想立即寻求帮助——不要担心。
人们可能会重新配置SSHD监听其他端口。你确定是22号口吗?此外,应该再次检查服务器IP和DNS名称。
确认后联系DevOps。这就导致了这种故障的第二种可能原因:SHHD不在线。虽然很少见,但确实有可能出现这个问题。此时,DevOps和运维人员需要立即采取行动。
3.主机密钥检查失败
当你第一次看到下面的警报时,你可能会感到困惑。简单来说,可以帮助我们避免中间人攻击。
denny @笔记本电脑:/# ssh root@www.dennyzhang.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@警告:检测到可能的域名系统欺骗!因特网网址中
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[www.dennyzhang.com]:22的ECDSA主机密钥已更改,
和对应的IP地址的密钥[45.33.87.74]:22
我不知道。这可能意味着
域名系统欺骗正在出现或主机的IP地址
同时它的主机密钥也发生了变化。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@警告:远程主机标识已更改!因特网网址中
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
有人可能正在做坏事!
有人可能正在窃听你(中间人攻击)!
主机密钥也有可能刚刚被更改。
远程主机输入的ECDSA密钥的指纹是
37:df:B3:af:54:a3:57:05:aa:32:65:fc:A8:E7:F9:3a。
请联系您的系统管理员。
添加正确主机尹柯/根目录/。ssh/known_hosts可以删除此消息。
触犯ECDSA尹柯/root/。ssh/已知主机:2
用:ssh-keygen -f "/root/删除。ssh/known _ hosts "-R[www . dennyzhang . com]:22
ECDSA主机keyfor[www.dennyzhang.com]:22已更改,您已要求严格检查。
主机密钥验证失败。
每台服务器都有指纹。如果服务器被重新配置或简单地替换为另一个不同的服务器,指纹也会改变。成功登录后,我们的笔记本会将服务器指纹保存在本地。下次登录的时候会先对比一下。如果指纹不匹配,我们将收到上述警报。
如果我们的服务器最近进行了重新配置,则可以忽略此警报。从~/中删除此条目。ssh/known_hosts,或者直接清除空文件。您甚至可以关闭所有SSH主机密钥检查(当然,不建议使用这种方法)。
4.SSH密钥文件模式有问题
SSH密钥文件具有自我保护属性,意味着不能随意打开。文件模式为0600或0400。
denny @膝上型电脑:/# ssh-I id _ RSA root@www.dennyzhang.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@警告:未受保护的私有密钥文件!因特网网址中
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
“id_rsa”的权限0644太开放。
要求您的私有密钥文件不能被其他人访问。
该私钥将被忽略。
错误的权限:ignorekey: id_rsa
权限被拒绝(publickey)。
可以用-v输出详细信息:ssh -v $user@$server_ip。
[51co翻译,转载于合作网站,请注明原译者及出处为51CTO.com]