我的vscode remote-ssh设置了免密登录,本来昨天上午还能正常登录,但昨晚开始登录失败,怀疑是vscode版本更新后动了某些配置。参考一些资料后,总结了如下的解决方案.
- 环境:本地 win11,服务器 linux
步骤1.更改Remote-SSH设置
- 一种可能导致登录失败的理由是,更新后的remote-ssh缺失了
"remote.SSH.useLocalServer: true"
的配置。为此,我们进入remote-ssh的settings.json中查看配置情况:
点击vscode左边栏“扩展”或按
Ctrl+Shift+X
,找到remote-ssh插件,点击右下角的小齿轮,进入设置页面在设置页面,找到”在settings.json编辑”按钮,点击进入
在settings.json中,检查是否有
"remote.SSH.useLocalServer"
选项。如果没有,则在最外层大括号内添加"remote.SSH.useLocalServer": true
;如果有且值为false
,则将值修改为true
。修改后结果如下所示- 保存settings.json,重新启动vscode,尝试远程登录。
步骤2.清空远程~/.vscode-server文件夹
- 如果步骤1不能解决问题,则可以尝试步骤2.步骤2相比于步骤1,是强制初始化远程vscode环境。
关闭vscode server。在本地vscode中按
Ctrl+Shift+P
进入命令面板,输入Kill VS Code Server on Host
,选中Remote-SSH中的对应命令,强制关闭对应的vscode server。这一步一定不能省略,否则下一步将无法删除 ~/.vscode-server 文件- 强制删除~/.vscode-server。vscode 服务器环境统一存储在~/.vscode-server中,其中~表示自己服务器账号的根目录。使用如下命令删除该文件夹:
1
rm -rf ~/.vscode-server
- 重新启动vscode,尝试远程登录。此时服务器会自动下载新的~/.vscode-server文件,待下载完成、配置完成后,即可使用。
更新 (2021.11.27)
- 当vscode remote-ssh 未关闭而电脑休眠后再唤醒时,会出现相同的登陆失败的问题。直接采用步骤2,问题解决