SSH的连接异常
- 如果您使用
VSCode
、PyCharm
等基于SSH
的连接异常时,请按下面的方式排查解决 - 如果您在使用
XShell
、MobaXterm
连接异常,请参考文档,无需继续看下面的解决方法
排查与解决¶
可能原因:
- 如果实例的系统盘重置或更换镜像,那么
SSH
的指纹会发生变化,于是SSH时会报错REMOTE HOST IDENTIFICATION HAS CHANGED
- 如果本地
ssh config
文件权限不对,会由于ssh
时无法写入配置报错(也有可能是其他文件) VSCode
由于连接同一个host
(不同端口)的地址时,写入的config
信息无法区分不同的实例地址,导致错误连接而失败
排查方法:
Step.1¶
先排查前两种原因,如果是Windows
客户启动栏里搜索powershell
,如果是Mac用户搜索terminal
,使用powershell/terminal
输入实例的完整SSH
指令后回车,如果是连接正常,那么会出现如下信息:
以上均可验证为连接正常,无需进行下一步输入密码。此时您可以查看Step2
排查VSCode/PyCharm
等原因。如果出现以下错误信息并退出ssh
:
以及上述的错误信息可能还有:
Bad owner or permissions on C:\Users\USER\.ssh\config
和 Load key "C:\Users\USER\.ssh\id_rsa": bad permissions
此时解决方法为:删除报错信息中的known_hosts、config
文件(本地文件,每个人看到的路径可能不同),如果是rsa
密钥的权限错误,Windows
用户请修改密钥的权限为只读,Linux/Mac
执行chmod 600 rsa
文件
Step.2¶
VSCode
连接异常
一般原因为HOST
冲突,比如此类情形: 在同一个地区租用了A
和B
两个实例,由于A
和B
只是HOST
名称相同端口不同,于是VSCode
在ssh/config
文件中写入的配置信息HOST
别名一模一样,当A
关机而B
实例开机时,连接B实例会导致VSCode
错误连接A
,导致连接失败。这种情形简单暴力的做法是删除C:\Users\USER\.ssh\config
文件,优雅的方式是编辑该config
文件,将里边Host
字段的名称(主机的别名)进行修改后重新连接
PyCharm
连接异常
由于PyCharm
封装复杂,并且外面看不到更多日志,需根据报错信息进行排查