目录

Windows 上 Git SSH 私钥要不要设置密码?

最近我重新整理了一下自己电脑上的 Git SSH 配置,顺手也想清楚了一个以前一直有点纠结的问题:

私钥到底要不要设置密码?

不设密码,git pullgit push 都很顺手;
设了密码,VSCode 或 IDEA 里又经常弹窗让输入,挺烦。

但想了想,私钥毕竟就是自己的身份凭证。
如果没有密码保护,哪天电脑中毒、文件被拷走,别人拿到这把 key,基本就能直接冒充访问仓库。

所以我的结论是:

私钥应该设置密码,但不应该每次都手动输入。

解决办法就是用 ssh-agent


ssh-agent 是什么?

可以简单理解成一个本地的“钥匙管家”。

第一次使用私钥时,输入一次密码。
之后 ssh-agent 会把解锁后的密钥临时缓存起来。

这样私钥文件本身仍然是加密的,但平时 git pullgit push 不会一直打断。


Windows 上怎么配置?

Windows 10 / 11 已经自带 OpenSSH 和 ssh-agent。

先确认 SSH 可用:

ssh -V

查看 ssh-agent 服务状态

Get-Service ssh-agent

然后用管理员 PowerShell 启动 ssh-agent:

Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent

再把私钥加入 agent:

ssh-add $env:USERPROFILE\.ssh\id_ed25519

第一次会输入私钥密码。 之后可以检查一下:

ssh-add -l

能看到 key 信息,就说明已经缓存成功了。


VSCode 和 IDEA 配置

VSCode 通常不用特别配置,但建议统一使用 Windows 自带的 OpenSSH:

git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

旧版本 IDEA 里可能有 SSH executable 选项,可以选择 Native;如果的版本里没有这个选项,就直接通过 git config --global core.sshCommand 让 Git 使用 Windows 自带的 OpenSSH。