每次我在Git中执行某些操作时,就像git pull一样,我会收到一条消息,要求输入ssh密码:
Enter passphrase for key 'c/users/<email address>/.ssh/id_rsa':
有没有一种方法我永远不必输入它(或以更低的频率输入它?
答案 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了解详情。