在Git中不断提示输入SSH密码短语

在Git中不断提示输入SSH密码短语,git,github,ssh,Git,Github,Ssh,每次我在Git中执行一些操作时,比如Git pull,我都会收到一条消息,输入ssh密码短语: Enter passphrase for key 'c/users/<email address>/.ssh/id_rsa': 输入密钥“c/users/.ssh/id\u rsa”的密码短语: 有没有一种方法可以让我不必输入它(或者输入频率低得多?您可以使用密钥代理来保存密钥。看起来您使用的是基于该路径的Windows。根据您使用的SSH客户端,Cygwin下的OpenSSH、MSY

每次我在Git中执行一些操作时,比如Git pull,我都会收到一条消息,输入ssh密码短语:

Enter passphrase for key 'c/users/<email address>/.ssh/id_rsa':
输入密钥“c/users/.ssh/id\u rsa”的密码短语:

有没有一种方法可以让我不必输入它(或者输入频率低得多?

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

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

我不相信MSYS有一个密钥链包,但你也可以手动使用ssh代理,它只是有点麻烦,因为它不会在不同的shell之间保存相同的代理信息。只需编辑你的
~/.bashrc
,包括:

eval $(ssh-agent)
ssh-add
然后,它将在每个终端会话中提示您一次,这比每次操作提示一次要好


如果使用PuTTY,则使用Pageant设置SSH代理。您可以将其设置为在登录时提示您输入密码,然后将密钥保留在内存中。有关详细信息,请查看。

您必须向连接到的服务器注册您的SSH公钥。有一个线程处理此问题:@tim,提示没有说明他无权使用此密钥推。你没有解决这个问题。但你还是否决了那些做的人。@chaiyachaiya不是我做的downvoted@Tim,对不起。我误解了关于SO的一些信息。我不使用这些,我不认为。我使用的是GitBash@SachinKainthGit Bash是基于MSYS的,因此您可以按照我为MSYS提供的说明进行操作。