如何配置Git Bash实现系统重启后无需重复输入SSH密钥口令
你当前添加到.bash_profile的脚本仅能实现终端启动时自动拉起ssh-agent并加载密钥,而ssh-agent的口令缓存是存储在内存中的,系统重启后缓存会被完全清空,因此每次开机后首次触发密钥校验时必然需要输入一次口令,属于正常的设计逻辑。你可以选择以下两种方案实现重启后无需重复输入口令:
方案1:使用系统密钥环存储口令(推荐,兼顾安全和便利)
该方案无需移除私钥本身的口令,利用系统自带的可信存储机制保存口令,登录系统后会自动解锁,不会额外降低安全性,适合所有带桌面环境的设备:
- macOS用户:
执行命令ssh-add --apple-use-keychain ~/.ssh/你的私钥文件名,输入一次你的SSH密钥口令即可完成存储。如果是macOS Ventura及更高版本,还需要在~/.ssh/config中新增如下配置,保证SSH调用时会自动读取钥匙串中的口令:Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/你的私钥文件名 - 桌面Linux(GNOME/KDE等主流桌面发行版)用户:
大部分发行版默认自带SSH密钥管理组件,首次弹出输入密钥口令的提示时,勾选「自动解锁登录密钥环」「下次登录无需输入」类的选项即可,系统会将口令存储在登录密钥环中,你输入系统用户密码登录后就会自动解锁,不需要重复输入SSH口令。 - Windows用户:
在系统服务中找到OpenSSH Authentication Agent,将启动类型设置为「自动」,开启服务后执行命令ssh-add ~/.ssh/你的私钥文件名,输入一次口令后就会永久存储,系统重启也不会丢失。
方案2:直接移除SSH密钥的口令(适合个人自用设备,操作最简单)
如果你确认你的设备只有你本人可以访问,不需要额外的口令保护私钥,可以直接删除私钥的口令,之后所有SSH相关操作都不需要输入密码:
执行命令ssh-keygen -p -f ~/.ssh/你的私钥文件名,按照提示输入旧的口令后,两次新口令直接按回车留空,确认后即可移除私钥的口令。
风险提示:该方案会降低私钥的安全性,如果你的设备丢失或者被他人非法访问,私钥会直接泄露,可能导致你的代码仓库等关联资源权限被盗用,请谨慎使用。
内容的提问来源于stack exchange,提问作者Joy Karmoker
相关产品推荐
相关产品推荐

