VSCode挂起、Git Bash SSH密钥验证异常问题求助
问题解答
1. VSCode仅挂起不弹出安全警告的原因
VSCode的Git集成底层调用系统Git客户端,但未实现SSH主机密钥确认的交互逻辑。遇到需手动确认密钥的场景时,VSCode没有对应的提示入口,导致Git相关进程阻塞,版本控制窗口卡死,而其他功能因独立线程运行不受影响。
2. 解决SSH密钥问题的方案
清理PuTTY主机密钥缓存
- 打开PuTTY,会话设置中输入
github.com并点击“打开”,在弹出的密钥确认窗口输入y更新缓存。 - 若手动操作缓存文件:进入
C:\Users\[你的用户名]\AppData\Roaming\PuTTY\sshhostkeys,删除含github.com的条目;或进入C:\Users\[你的用户名]\.ssh,删除known_hosts中对应github.com的记录,重新推送时按提示确认新密钥。
- 打开PuTTY,会话设置中输入
切换Git使用OpenSSH客户端
Windows下Git默认可能用PuTTY的plink.exe,切换到OpenSSH可规避问题:- Git Bash执行命令:
git config --global core.sshCommand "ssh -F /dev/null" - 或在VSCode设置(Ctrl+,)中搜索
git ssh path,选择系统自带的OpenSSH路径(通常为C:\Windows\System32\OpenSSH\ssh.exe)。
- Git Bash执行命令:
重新生成合规格式密钥
确保生成OpenSSH格式密钥,避免PuTTY格式冲突:- 删除无效密钥,执行命令生成更安全的ed25519密钥:
ssh-keygen -t ed25519 -C "email@email.com" - 将生成的公钥(
id_ed25519.pub内容)添加至GitHub的SSH密钥设置中。 - 执行
ssh-add ~/.ssh/id_ed25519加载密钥,输入密钥密码(若设置过)即可。
- 删除无效密钥,执行命令生成更安全的ed25519密钥:
3. Git Bash输入无响应的解决办法
- 打开任务管理器,强制结束所有
plink.exe或ssh.exe进程,重启Git Bash后重新操作。 - 关闭当前Git Bash窗口,重新打开后先执行
ssh github.com,在终端弹出的密钥确认提示中输入y,完成确认后再执行推送命令。
内容的提问来源于stack exchange,提问作者brosenheim
相关产品推荐
相关产品推荐

