如何让SSH Agent适配Git签名密钥实现免密提交?
解决SSH签名密钥无法被SSH Agent记住的问题
检查密钥文件权限
SSH对密钥文件权限要求极高,权限过宽会被Agent拒绝。执行以下命令修正:chmod 700 ~/.ssh chmod 600 ~/.ssh/git-sign确保SSH Agent处于运行状态
先启动Agent,再尝试添加密钥:eval "$(ssh-agent -s)" ssh-add --apple-use-keychain ~/.ssh/git-sign输入密码时,勾选钥匙串弹窗里的存储到钥匙串选项。
修改SSH配置自动加载密钥
在~/.ssh/config中添加AddKeysToAgent和UseKeychain选项,让SSH自动将密钥加入Agent并保存密码到钥匙串:Host github.com User git Hostname github.com IdentityFile ~/.ssh/git IdentityFile ~/.ssh/git-sign AddKeysToAgent yes UseKeychain yes确认Git签名配置正确
确保Git指定使用该SSH密钥进行签名:git config --global gpg.format ssh git config --global user.signingkey ~/.ssh/git-sign.pub排查钥匙串旧条目
打开「钥匙串访问」应用,搜索git-sign或ssh相关条目,删除无效的旧记录后,重新执行ssh-add --apple-use-keychain ~/.ssh/git-sign。验证配置生效
执行ssh-add -l查看已加载的密钥指纹,确认git-sign在列表中;然后测试签名提交:git commit -S -m "Test signed commit"若无需输入密码则配置成功。
内容的提问来源于stack exchange,提问作者Vala
相关产品推荐
相关产品推荐

