继续在Git中提示输入SSH密码

时间:2014-04-28 12:43:44

标签: git github ssh

每次我在Git中执行某些操作时,就像git pull一样,我会收到一条消息,要求输入ssh密码:

Enter passphrase for key 'c/users/<email address>/.ssh/id_rsa':

有没有一种方法我永远不必输入它(或以更低的频率输入它?

1 个答案:

答案 0 :(得分:3)

您可以使用密钥代理来保存密钥。看起来您正在使用基于该路径的Windows。根据您使用的SSH客户端,Cygwin下的OpenSSH,MSYS中的OpenSSH或PuTTY,步骤将有所不同。

在OpenSSH下,设置和使用密钥代理的最简单方法是使用Keychain。从Cygwin包管理器安装它,然后阅读man keychain中的文档。基础是将eval $(keychain --eval id_rsa)添加到您的.profile。设置完成后,它会在您第一次打开终端时提示您输入密码,然后将其保存在代理商的内存中。

我不相信MSYS有一个Keychain包,但你也可以手动使用ssh-agent,它只是稍微麻烦一点,因为它不会保存相同的代理信息不同的贝壳之间。只需修改您的~/.bashrc即可包含:

eval $(ssh-agent)
ssh-add

然后它会在每个终端会话中提示您一次,这比每次操作好一次。

如果使用PuTTY,则使用Pageant设置SSH代理。您可以将其设置为在登录时提示您输入密码,然后将密钥保存在内存中。查看documentation了解详情。