VSCode SSH to the remote the server: 过程试图写入的管道不存在

[20:39:33.835] > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> ]0;C:\WINDOWS\System32\cmd.exe
[20:39:33.835] Got some output, clearing connection timeout
[20:39:33.849] > @    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 ECDSA key sent by the remote host is
> SHA256:L2u+dyztTxL50Qna6dDzoOT/D8G79pm1GJbXXhO+F6k.
> Please contact your system administrator.
> Add correct host key in C:\\Users\\.../.ssh/known_hosts to get rid of this message.
> Offending ECDSA key in C:\\Users\\.../.ssh/known_hosts:9
> ECDSA host key for [59.77.13.208]:7110 has changed and you have requested strict checking.
> Host key verification failed.
> 过程试图写入的管道不存在。
[20:39:35.243] "install" terminal command done
[20:39:35.245] Install terminal quit with output: 过程试图写入的管道不存在。
[20:39:35.245] Received install output: 过程试图写入的管道不存在。
[20:39:35.247] Failed to parse remote port from server output
[20:39:35.251] Resolver error: Error: 
    at m.Create (c:\Users\...\.vscode\extensions\ms-vscode-remote.remote-ssh-0.98.0\out\extension.js:1:584388)
    at t.handleInstallOutput (c:\Users\...\.vscode\extensions\ms-vscode-remote.remote-ssh-0.98.0\out\extension.js:1:582948)
    at t.tryInstall (c:\Users\...\.vscode\extensions\ms-vscode-remote.remote-ssh-0.98.0\out\extension.js:1:681793)
    at async c:\Users\...\.vscode\extensions\ms-vscode-remote.remote-ssh-0.98.0\out\extension.js:1:644041
    at async t.withShowDetailsEvent (c:\Users\...\.vscode\extensions\ms-vscode-remote.remote-ssh-0.98.0\out\extension.js:1:647359)
    at async t.resolve (c:\Users\...\.vscode\extensions\ms-vscode-remote.remote-ssh-0.98.0\out\extension.js:1:645091)
    at async c:\Users\...\.vscode\extensions\ms-vscode-remote.remote-ssh-0.98.0\out\extension.js:1:720839
[20:39:35.265] ------

背景:

服务器重装系统之后,在本地通过VSCode远程登陆(SSH)到远端服务器时,会出现如上错误。

错误原因:

当你使用SSH连接到一个远程主机时,SSH客户端会保存该主机的公钥信息,并将其记录在known_hosts文件中。在以后的连接中,SSH客户端会检查该主机的公钥是否与known_hosts文件中保存的公钥匹配,以确保连接的安全性。如果远程主机的公钥发生了变化,比如重新安装操作系统或更换了SSH服务器,SSH客户端会提示你该主机的公钥已经改变,可能存在安全风险。此时,你需要手动确认并更新known_hosts文件,以确保连接的安全性。

如果远程服务器的SSH服务被卸载、重装或SSH相关数据被删除,那么当你再次连接到该服务器时,SSH客户端将无法验证该服务器的公钥信息,因为其已被更改或删除。此时,你需要手动删除known_hosts文件中与该服务器相关的条目,并重新连接到服务器,以重新记录其公钥信息。如果你不确定known_hosts文件中的哪些条目需要删除,可以删除整个known_hosts文件,以便在下一次连接时重新记录所有服务器的公钥信息。

解决方案:

环境:Win11+VSCode

在Windows系统中,known_hosts文件可能位于C:\Users{用户名}.ssh\known_hosts或C:\Documents and Settings{用户名}.ssh\known_hosts。

主要.ssh是隐藏文件。

删除上述文件之后,可以重新登录远端服务器!!

细看自己的错误原因,本方案不一定解决所有问题。

参考资料:

  1) ssh登录错误ECDSA host key for ip has changed解决方案 - 简书 (jianshu.com)

posted @ 2023-03-18 20:56  有梦-  阅读(3828)  评论(0编辑  收藏  举报