我按照github教程中的指示创建了密钥,在github上注册了它们,并尝试显式地使用ssh-agent -然而,每当我尝试进行拉或推操作时,git仍然会继续询问我的密码。
原因可能是什么?
我按照github教程中的指示创建了密钥,在github上注册了它们,并尝试显式地使用ssh-agent -然而,每当我尝试进行拉或推操作时,git仍然会继续询问我的密码。
原因可能是什么?
当前回答
听起来您可能在SSH-Agent本身遇到了问题。我会试着排除故障。
1)你做SSH -add添加你的密钥到SSH?
2)你是否在使用之间关闭终端窗口,因为如果你关闭了窗口,当你重新打开它时,你将不得不再次输入密码。
其他回答
我不知道是否有人需要不同的东西,但这对我帮助很大 https://stackoverflow.com/a/6445525/11891580
对我来说,每次重启,我都必须运行ssh-add——apple-use-keychain来加载凭据,所以我把这个命令添加到堆栈溢出的答案,现在它已经修复了
听起来您可能在SSH-Agent本身遇到了问题。我会试着排除故障。
1)你做SSH -add添加你的密钥到SSH?
2)你是否在使用之间关闭终端窗口,因为如果你关闭了窗口,当你重新打开它时,你将不得不再次输入密码。
从OS X El Capitan(10.11)升级到macOS Sierra(10.12)后重新启动后,这种情况一直发生在我身上。ssh-add解决方案暂时有效,但不会在再次重新启动时继续存在。
永久的解决方案是编辑(或创建)~/。ssh/config,启用UseKeychain选项。
Host *
UseKeychain yes
相关:自从我更新到Sierra, macOS一直在问我的ssh密码
以前-K标志用于添加键,但现在:
ssh-add --apple-use-keychain
-K和-A标志已弃用,已被替换 用苹果使用钥匙链和苹果装载钥匙链 分别标记。
稍后编辑:您可能需要添加ssh-add——apple-load-keychain -q到您的.bash_profile或.bashrc或.zshrc或等效文件。
对于Windows或Linux用户,GitHub Docs中描述了一个可能的解决方案,为了方便起见,我在下面报告。
您可以在打开bash或Git shell时自动运行ssh-agent。复制以下行并将它们粘贴到~/。Profile或~/。bashrc文件:(
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
如果您的私钥没有存储在默认位置之一(如~/. SSH /id_rsa),您需要告诉SSH身份验证代理在哪里可以找到它。要将密钥添加到ssh-agent,输入ssh-add ~/path/ To /my_key。
现在,当您第一次运行Git Bash时,系统会提示您输入密码。ssh-agent进程将继续运行,直到您注销、关闭计算机或杀死该进程为止。