Git每次push/pull都提示输入SSH passphrase的原因及解决方法咨询
问题原因及解决方案
SSH验证命令报错原因
你使用的验证命令不符合SSH协议的格式要求,SSH连接GitLab不需要携带https://前缀,也不需要追加个人用户名路径,正确的验证命令为:ssh -T git@gitlab.com
执行后如果返回包含你GitLab用户名的欢迎信息,即证明SSH连接配置正常。
Git每次push要求输入passphrase的解决方案
该问题的核心原因是你生成ED25519密钥时设置了密钥保护密码(passphrase),且本地没有开启SSH代理缓存密码,每次调用密钥时都会要求你输入密码解锁,和GitLab服务端配置无关,可按以下步骤解决:
- 启动本地ssh-agent进程:
Windows系统在Git Bash中执行,macOS/Linux直接在终端执行:eval $(ssh-agent -s) - 将私钥添加到ssh-agent缓存:
执行如下命令后输入一次你的密钥passphrase,后续所有使用该密钥的操作都无需重复输入密码:ssh-add ~/.ssh/id_ed25519 - (可选)配置开机自动加载,避免重启设备后重复操作:
- macOS用户:可将
ssh-add --apple-use-keychain ~/.ssh/id_ed25519命令添加到~/.zshrc或~/.bash_profile中,密码会存储到系统钥匙串持久生效 - Windows用户:可以在服务管理中设置
ssh-agent服务为开机自启,添加密钥后密码会永久缓存 - Linux用户:将ssh-agent启动命令和ssh-add命令写入
~/.bashrc或对应shell的配置文件即可
- macOS用户:可将
内容的提问来源于stack exchange,提问作者user32882
相关产品推荐
相关产品推荐

