我按照github教程中的指示创建了密钥,在github上注册了它们,并尝试显式地使用ssh-agent -然而,每当我尝试进行拉或推操作时,git仍然会继续询问我的密码。

原因可能是什么?


当前回答

在mac上, 如果你的SSH密钥每次都需要密码,你想跳过它,那么你可以试试下面,它对我来说很好

Eval "$(ssh-agent -s)" ssh-add -K .ssh/id_rsa 添加这个默认的SSH配置对我有用

主机* AddKeysToAgent是的 UseKeychain是的 IdentityFile ~ / . ssh / id_rsa

其他回答

我会尝试以下方法:

开始GitBash 编辑~/。bashrc文件( 将以下行添加到文件中

SSH_ENV=$HOME/.ssh/environment # start the ssh-agent function start_agent { echo "Initializing new SSH agent..." # spawn ssh-agent /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} echo succeeded chmod 600 ${SSH_ENV} . ${SSH_ENV} > /dev/null /usr/bin/ssh-add } if [ -f "${SSH_ENV}" ]; then . ${SSH_ENV} > /dev/null ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi Save and close the file Close GitBash Reopen GitBash Enter your passphrase

我尝试了不同的解决方案,但都没用。但是这个步骤(我的giitbash SSH环境总是要求我的密码,我能做什么?)从Bitbucket.com接缝工作得很好:

这个想法是:

you create ~/.bashrc file add follow script: SSH_ENV=$HOME/.ssh/environment # start the ssh-agent function start_agent { echo "Initializing new SSH agent..." # spawn ssh-agent /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" echo succeeded chmod 600 "${SSH_ENV}" . "${SSH_ENV}" > /dev/null /usr/bin/ssh-add } if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi re-run Bash

也许不是最安全的方法来解决这个问题,但不要设置密码短语,这是可选的。如果您不设置密码短语,它将不会请求它。你可以用更改密码

$ ssh-keygen -p -f ~/.ssh/id_ed25519
> Enter old passphrase: [Type old passphrase]
> Key has comment 'your_email@example.com'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]
> Enter same passphrase again: [Repeat the new passphrase]
> Your identification has been saved with the new passphrase.

从OS X El Capitan(10.11)升级到macOS Sierra(10.12)后重新启动后,这种情况一直发生在我身上。ssh-add解决方案暂时有效,但不会在再次重新启动时继续存在。

永久的解决方案是编辑(或创建)~/。ssh/config,启用UseKeychain选项。

Host *
    UseKeychain yes

相关:自从我更新到Sierra, macOS一直在问我的ssh密码

我不知道是否有人需要不同的东西,但这对我帮助很大 https://stackoverflow.com/a/6445525/11891580

对我来说,每次重启,我都必须运行ssh-add——apple-use-keychain来加载凭据,所以我把这个命令添加到堆栈溢出的答案,现在它已经修复了