记一次vscode remote-ssh登录失败的解决方案

我的vscode remote-ssh设置了免密登录,本来昨天上午还能正常登录,但昨晚开始登录失败,怀疑是vscode版本更新后动了某些配置。参考一些资料后,总结了如下的解决方案.

  • 环境:本地 win11,服务器 linux

步骤1.更改Remote-SSH设置

  • 一种可能导致登录失败的理由是,更新后的remote-ssh缺失了"remote.SSH.useLocalServer: true"的配置。为此,我们进入remote-ssh的settings.json中查看配置情况:
  1. 点击vscode左边栏“扩展”或按Ctrl+Shift+X,找到remote-ssh插件,点击右下角的小齿轮,进入设置页面

    1

  2. 在设置页面,找到”在settings.json编辑”按钮,点击进入

    2

  3. 在settings.json中,检查是否有"remote.SSH.useLocalServer"选项。如果没有,则在最外层大括号内添加"remote.SSH.useLocalServer": true;如果有且值为false,则将值修改为true。修改后结果如下所示

    3

  4. 保存settings.json,重新启动vscode,尝试远程登录。

步骤2.清空远程~/.vscode-server文件夹

  • 如果步骤1不能解决问题,则可以尝试步骤2.步骤2相比于步骤1,是强制初始化远程vscode环境。
  1. 关闭vscode server。在本地vscode中按Ctrl+Shift+P进入命令面板,输入Kill VS Code Server on Host,选中Remote-SSH中的对应命令,强制关闭对应的vscode server。这一步一定不能省略,否则下一步将无法删除 ~/.vscode-server 文件

    4

  2. 强制删除~/.vscode-server。vscode 服务器环境统一存储在~/.vscode-server中,其中~表示自己服务器账号的根目录。使用如下命令删除该文件夹:
    1
    rm -rf ~/.vscode-server
  3. 重新启动vscode,尝试远程登录。此时服务器会自动下载新的~/.vscode-server文件,待下载完成、配置完成后,即可使用。

更新 (2021.11.27)

  • 当vscode remote-ssh 未关闭而电脑休眠后再唤醒时,会出现相同的登陆失败的问题。直接采用步骤2,问题解决

参考资料