云计算百科
云计算领域专业知识百科平台

【干货】解决服务器重装之后vscode Remote-SSH无法连接的问题

问题描述

废话不多说,我的情况是我有两个之前已经在vscode的remote-ssh插件中已经配置并且已经连接过的服务器,但是在这两个服务器重装系统之后却无法链接,而使用Xshell和自带的命令行窗口是能够正常了连接的。

解决方案

先说解决方案,在你的windows命令窗口输入:

ssh-keygen -R 服务器IP

回车执行然后重新使用vscode连接就行了。

原因分析

光解决问题还不够,咱还得知道问题是如何产生的。

可以看一下vscode的控制台输出: 在这里插入图片描述 这里的意思是主机密钥验证失败,因为remote-ssh连接背后的原理是在服务器上装一个vscode-server来进行通信,由于目前我们的服务器已经重装了,因此需要重新下载vscode-server。

但是很不巧,安装这个软件vscode需要首先通过我们的终端来连接到服务器,然后在服务器上下载,问题就出在了这一步,由于服务器已经重装了,这时候windows电脑上保存的对应主机的指纹和现在主机的指纹不匹配了,这会被判定为存在一些肮脏的行为(认为你的行为存在被攻击的风险。)所以被强行截断。

而为了解决这个问题,我们只需要把本地保存的指纹给清除掉就行了,所以执行ssh-keygen -R 来删除本地保存的对应主机的公钥,当公钥已经删除之后,code认为我们曾经没有访问过这台主机,因此就不再进行指纹匹配。

再扩展一下,ssh-keygen -R 是用来从 known_hosts 文件中删除特定主机的条目的命令。而known_hosts 文件用于存储已知主机的公钥,它通常位于用户的 ~/.ssh/known_hosts 文件中。因此如果你不想执行命令也可以手动去删除对应的记录。

例如我还有一台服务器还没有删除公钥条目,打开 ~/.ssh/known_hosts这个文件: 在这里插入图片描述 搜索找到这个主机对应为记录,并且删除。 重新连接,弹出此窗口则已经可以正常连接: 在这里插入图片描述

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【干货】解决服务器重装之后vscode Remote-SSH无法连接的问题
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!