相同IP和端口的服务器ssh连接时出现异常

起因

把服务器上的一个虚拟机搞坏了,所以删除重新创建了一个,端口号和IP与之前的虚拟机相同。

ssh username@IP -p port 时报错

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the XXXXX key sent by the remote host is
XXXXX.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:13
  remove with:
  ssh-keygen -f "/root/.ssh/known_hosts" -R "[IP]:port"
Host key for [IP]:port has changed and you have requested strict checking.
Host key verification failed.
lost connection

原因

开始看到这个错误以为是公钥私钥不对应,但我并没有生成过公私钥,感到很奇怪。之后才弄明白:因为之前连接过相同IP和端口的虚拟机,所以电脑会把连接过的虚拟机的公钥保存到C:\Users\user_name\.ssh\known_hosts中,在ssh连接的时候会验证里面存储的公钥和目标虚拟器的公钥是否一致,不一致就会报上面的错。

解决

windows上把"C:\Users\user_name\.ssh\known_hosts"里有关旧的虚拟机的信息删除即可
linux可以使用以下命令ssh-keygen -f "/root/.ssh/known_hosts" -R "[IP]:port",如果执行这个命令卡住了,如下图:在这里插入图片描述
说明有进程在在占用这个文件,把vs_code等的编辑器关掉,在终端执行上述命令即可

### VSCode SSH 远程服务器连接失败解决方案 当遇到VSCode通过SSH连接远程服务器出现的连接失败问题,可以从多个角度排查解决问题。 如果初次SSH远程连接服务器失败,并且提示“Downloading VS Code Server failed. Please try again later.”或一直处于下载状态,则可能是网络原因导致无法完成VS Code Server的下载[^1]。此建议稍后再试,确保本地与远程服务器之间的网络稳定。 对于持续性的连接错误,应考虑远程服务器上的SSH服务配置是否存在问题。具体来说,远程服务器SSH服务配置可能禁止了TCP端口转发功能,或是VS Code Server在远程服务器上发生了异常终止。针对这种情况: - 登录至远程服务器,编辑`/etc/ssh/sshd_config`文件,确认如下选项已启用并未被注释掉: - `AllowTcpForwarding yes` - `GatewayPorts yes` - 修改完成后记得重启SSH服务以应用更改,在基于systemd的操作系统版本中可执行命令`sudo systemctl restart sshd`来实现这一点[^2]。 另外一种常见情况是在更新过SSH配置文件或者密钥信息之后发生的连接失败现象。这通常表现为尝试向管道写入数据报错。对此类问题的有效处理方式包括但不限于: - 设置VSCode中的SSH扩展使用的config文件路径为绝对路径; - 清除`.ssh/known_hosts`内的记录条目,即删除此文件; - 使用命令行工具刷新目标主机的公钥缓存:先移除旧有的键`ssh-keygen -R <服务器IP>`再添加新的键`ssh-keyscan -H <服务器IP> >> ~/.ssh/known_hosts`; - 如果上述操作后仍存在稳定性方面的问题,比如频繁断线重连的情况发生,那么关闭并重新启动计算机或许能帮助恢复正常工作流程[^3]。 最后还需注意的是,有即使解决了所有可见的技术障碍,由于Windows自带OpenSSH客户端或其他环境因素的影响也可能阻碍正常建立连接。因此必要也需审查本机操作系统层面的相关设置[^4]。 ```bash # 更新远程服务器公钥示例代码 ssh-keygen -R 服务器IP地址 ssh-keyscan -H 服务器IP地址 >> ~/.ssh/known_hosts ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值