VSCode Remote-SSH无法连接远程服务器:无可用Kerberos凭证求助
解决VSCode Remote-SSH连接失败且无密码输入框的问题
我之前也碰到过一模一样的情况,结合你提供的日志信息,咱们一步步排查解决:
1. 优先启用终端登录模式(快速绕过AskPass问题)
VSCode的Remote-SSH有个内置选项可以直接用终端输入凭证,不用依赖图形化的AskPass弹窗:
- 打开VSCode设置(快捷键
Ctrl+,) - 搜索
remote.SSH.showLoginTerminal,勾选这个选项 - 重新尝试连接远程服务器,这时候会弹出一个终端窗口,你可以在里面手动输入密码或者SSH密钥短语
2. 测试SSH基础连接是否正常
先排除服务器端的问题,打开本地终端运行:
ssh -v -T pipeline-azure-2.nplan.io
如果终端里能正常提示你输入凭证并成功连接,那问题肯定出在VSCode的AskPass机制上;如果终端也连不上,那先解决SSH本身的连接问题(比如检查服务器防火墙、网络可达性)。
3. 修复SSH AskPass脚本的问题
从日志里看到VSCode指定了SSH_ASKPASS路径,但这个脚本可能没正常工作:
- 手动运行这个脚本测试:
/home/.vscode/extensions/ms-vscode-remote.remote-ssh-0.65.7/out/local-server/askpass.sh
如果运行后没有弹出输入框,可能是:
- VSCode没有图形环境权限:尝试用
code --no-sandbox命令启动VSCode - 系统缺少图形依赖:安装
libgtk-3-0包(Ubuntu下用sudo apt install libgtk-3-0)
4. 排除Kerberos认证的干扰
日志里提到“无可用Kerberos凭证”,这可能导致连接过程卡住:
- 编辑你的SSH配置文件
~/.ssh/config,添加以下内容:
Host pipeline-azure-2.nplan.io GSSAPIAuthentication no GSSAPIDelegateCredentials no
这样会强制SSH跳过Kerberos认证,改用密码或密钥认证。
5. 检查SSH密钥的权限和代理
如果使用SSH密钥登录:
- 确保密钥文件权限正确:运行
chmod 600 ~/.ssh/id_rsa(替换成你的密钥文件名) - 启动ssh-agent并添加密钥:
eval $(ssh-agent) ssh-add ~/.ssh/id_rsa
这样VSCode连接时可以直接读取代理中的密钥,不需要重复输入短语。
内容的提问来源于stack exchange,提问作者eng2019




