VS Code配置同一远程主机多SSH用户连接后原连接故障求助
解决VS Code同一主机多用户SSH连接问题
问题根源
你的SSH配置文件中两个连接使用了相同的Host别名(gch1),SSH会自动覆盖前面的配置,最终仅最后一条配置生效。同时VS Code远程连接可能缓存了旧的服务器路径,导致启动时错误调用engineer的主目录,而dev用户无权限访问该目录,引发连接报错。
另外,当你将Host改为dev@gch1和engineer@gch1时,SSH无法正确匹配对应的IdentityFile配置,导致密钥认证失效,因此会要求输入密码。
正确配置方案
给每个用户连接设置唯一的Host别名,让SSH能明确区分不同连接,同时确保密钥路径对应正确。修改后的SSH配置如下:
Host gch1-engineer HostName gch1 User engineer IdentityFile C:\Users\MY_MS_USER\.ssh\id_engineer Host gch1-dev HostName gch1 User dev IdentityFile C:\Users\MY_MS_USER\.ssh\id_ed25519
额外修复步骤
- 清除VS Code远程缓存:打开VS Code按下
F1打开命令面板,输入并执行Remote-SSH: Kill VS Code Server on Host...,选择对应主机清理缓存后重新连接,确保服务器从各自用户的主目录启动。 - 验证密钥有效性:检查远程主机
~/.ssh/authorized_keys文件中,是否分别添加了id_engineer.pub和id_ed25519.pub的公钥内容;同时确保本地密钥文件权限仅当前用户可访问(Windows下避免权限过宽导致SSH拒绝使用密钥)。
内容的提问来源于stack exchange,提问作者daragh
相关产品推荐
相关产品推荐

