远程开发机更新,vscode连接失败
报错信息
"install" terminal command done
Install terminal quit with output: Host key verification failed.
Received install output: Host key verification failed.
Failed to parse remote port from server output
Resolver error: Error:
解决办法
远端和本地都执行,ssh-keygen 【一路回车next即可】
在$HOME/.ssh目录下找到生成的pubkey:id_rsa.pub
写入到authorized_keys文件中。
远端写本地电脑id_rsa.pub的配置,本地电脑写入远端生成的id_rsa.pub配置
删除本地$HOME/.ssh/known_hosts 原来对远端的连接信息,直接重新连接
vscode会将连接信息写入到known_hosts
vscode连接conf配置文件
Host ******
HostName IP
User user_name
Port 22
IdentityFile ~/.ssh/id_rsa
以下from ChatGPT
这个报错主要说明了 VSCode 通过 SSH 连接到远程服务器时,SSH 客户端未能验证远程主机的密钥。这是一个常见问题,通常与 SSH 配置或已知主机密钥有关。
报错详细说明
-
核心报错:
Host key verification failed.
这表示 SSH 客户端未能验证远程服务器的主机密钥,可能的原因包括:
- 远程服务器的主机密钥未存储在本地的
~/.ssh/known_hosts
文件中。 - 远程服务器的主机密钥已更改,但
~/.ssh/known_hosts
文件中存储的是旧的密钥。 - 网络中间人攻击导致主机密钥不匹配。
- 远程服务器的主机密钥未存储在本地的
-
后续报错:
Failed to parse remote port from server output
由于主机密钥验证失败,VSCode 无法通过 SSH 建立连接,因此后续与远程主机的通信失败。
解决方法
1. 确认远程主机的主机密钥
在终端中直接尝试连接远程服务器,查看是否出现主机密钥相关提示:
ssh <username>@<remote-server>
-
第一次连接:如果这是第一次连接到远程服务器,你会看到类似以下提示:
The authenticity of host '<remote-server>' can't be established. RSA key fingerprint is <fingerprint>. Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入
yes
,并按回车以接受密钥,密钥将被添加到~/.ssh/known_hosts
文件中。 -
主机密钥已更改:如果提示主机密钥与记录不一致,SSH 会报错:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
此时,你需要更新
~/.ssh/known_hosts
文件,删除对应的旧记录。
2. 删除旧的主机密钥记录
如果你确认远程服务器的主机密钥是可信的,可以手动更新:
- 打开
~/.ssh/known_hosts
文件:nano ~/.ssh/known_hosts
- 查找对应的远程主机记录(可以用 IP 或域名搜索),然后删除该行。
- 保存文件后重新连接。
或者直接通过 SSH 命令删除:
ssh-keygen -R <remote-server>
3. 确保 SSH 配置正确
确保 ~/.ssh/config
中的配置与实际情况匹配。例如:
Host <alias>
HostName <remote-server-ip-or-domain>
User <username>
Port <port>
IdentityFile ~/.ssh/<private-key> # 如果需要私钥
4. 检查 VSCode 的 Remote-SSH 配置
-
打开 VSCode 的命令面板,输入:
Remote-SSH: Settings
-
确保 VSCode 使用正确的 SSH 配置文件路径。
- 默认路径为
~/.ssh/config
。
- 默认路径为
-
如果配置文件路径有误,可以在 VSCode 设置中明确指定:
"remote.SSH.configFile": "~/.ssh/config"
5. 测试连接
在 VSCode 中,按以下步骤重新测试:
- 打开命令面板(
Ctrl + Shift + P
)。 - 输入
Remote-SSH: Connect to Host
,选择目标服务器。 - 如果仍然失败,可以打开 VSCode 的输出日志(
View -> Output
),选择 “Remote-SSH” 查看详细信息。
6. 最终检查
如果以上方法无效,检查以下内容:
- 网络问题:确保本地机器能够访问远程服务器的 SSH 端口(默认是
22
)。 - 防火墙设置:确认远程服务器允许来自本地机器的 SSH 连接。
- 权限问题:确保
~/.ssh
和相关私钥文件权限正确。chmod 700 ~/.ssh chmod 600 ~/.ssh/<private-key>
解决主机密钥验证问题后,VSCode 应该可以顺利连接到远程服务器。