如何在Visual Studio Code Remote - SSH扩展中确认新的远程主机密钥?

21
确切的错误信息是“无法连接到“[server_name]”: 远程主机密钥已更改,端口转发已禁用。”
最近我通过从备份中启动新实例来“回滚”生产环境的更新。这会给我一个新的服务器主机密钥,这是预期的。我使用的所有其他SSH连接工具(WinSCP、FileZilla、Text Wrangler、Putty、终端、DBeaver等)都有一个更改通知,并允许您确认密钥并验证它是否有效(或无效)。
我在VS Code远程开发工具中找不到那个选项。它提示您简单地关闭或重试(同样的错误,显然)。 “更多操作”选项除了配置文件选项、我认为不允许我更新主机密钥的设置和文档外,没有给我任何东西,而根据我所知,该文档也没有解释如何更新主机密钥。
我假设我错过了某个简单的地方……任何帮助都将不胜感激。
2个回答

34

这是一件简单的事情。在试图查看问题时发现的。

如问题中所述,文档的系统要求中列出了“还必须安装支持OpenSSH的兼容SSH客户端”。在再次尝试通过Visual Studio连接之前,只需更新该OpenSSH客户端中的密钥即可。

在此特定情况下,只需要转到[local_path]/.ssh/known_hosts,删除IP地址的旧条目,然后再次尝试连接,这样就可以验证新密钥了。


9
我想补充一些对我有帮助的东西 - 当你使用VSCode连接时遇到上述错误信息时,查看“OUTPUT”部分 - 你应该会看到一个类似于“@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @” 的消息。在文本下面,它会告诉你本地known_hosts文件的路径,如果你不知道它在哪里的话。然后,你只需要删除known_hosts文件中与你正在尝试连接的服务器相对应的那一行。然后再次尝试连接。 - icedcoffee
这个额外的评论对我的情况非常有帮助。 - Amir
2
如果你搜索 ctrl+fknown_hosts,它会立即给出一个带有 key-gen -f 关键字的命令,以删除该特定行。ssh-keygen -f "/home/user/.ssh/known_hosts" -R "XXX.XXX.X.XXX"(其中远程 IP 是你正在尝试连接的)。 - M.K

9

移除主机名的密钥

ssh-keygen -R "hostname"

我也不得不退出VS Code并重新启动。 - undefined
1
开始一个新的终端会话就可以了。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接