Bootstrap

vscode连接远程开发机报错

远程开发机更新,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 配置或已知主机密钥有关。


报错详细说明

  1. 核心报错

    Host key verification failed.
    

    这表示 SSH 客户端未能验证远程服务器的主机密钥,可能的原因包括:

    • 远程服务器的主机密钥未存储在本地的 ~/.ssh/known_hosts 文件中。
    • 远程服务器的主机密钥已更改,但 ~/.ssh/known_hosts 文件中存储的是旧的密钥。
    • 网络中间人攻击导致主机密钥不匹配。
  2. 后续报错

    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. 删除旧的主机密钥记录

如果你确认远程服务器的主机密钥是可信的,可以手动更新:

  1. 打开 ~/.ssh/known_hosts 文件:
    nano ~/.ssh/known_hosts
    
  2. 查找对应的远程主机记录(可以用 IP 或域名搜索),然后删除该行。
  3. 保存文件后重新连接。

或者直接通过 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 配置

  1. 打开 VSCode 的命令面板,输入:

    Remote-SSH: Settings
    
  2. 确保 VSCode 使用正确的 SSH 配置文件路径。

    • 默认路径为 ~/.ssh/config
  3. 如果配置文件路径有误,可以在 VSCode 设置中明确指定:

    "remote.SSH.configFile": "~/.ssh/config"
    

5. 测试连接

在 VSCode 中,按以下步骤重新测试:

  1. 打开命令面板(Ctrl + Shift + P)。
  2. 输入 Remote-SSH: Connect to Host,选择目标服务器。
  3. 如果仍然失败,可以打开 VSCode 的输出日志(View -> Output),选择 “Remote-SSH” 查看详细信息。

6. 最终检查

如果以上方法无效,检查以下内容:

  • 网络问题:确保本地机器能够访问远程服务器的 SSH 端口(默认是 22)。
  • 防火墙设置:确认远程服务器允许来自本地机器的 SSH 连接。
  • 权限问题:确保 ~/.ssh 和相关私钥文件权限正确。
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/<private-key>
    

解决主机密钥验证问题后,VSCode 应该可以顺利连接到远程服务器。

;