Git不断提示我输入密码

我已经使用Git了一段时间了,但是不断要求输入密码正开始让我走上困境。

我使用OSX和Github,并按照GitHub的Set Up Git页面的指示设置了Git和SSH密钥。 我还将github SSH密钥添加到我的Mac OSX钥匙串中,如GitHub的SSH密钥密码页面中所述。 我的公钥已在Git中注册。

尽管如此,每次我尝试拉扯时,都必须输入我的用户名和密码。 除了需要为此设置的SSH密钥外,还有其他什么吗?


我想你可能有错误的git repo url。

打开.git/config并找到[remote“origin”]部分。 确保你使用的是SSH

ssh://git@github.com/username/repo.git

而不是httpsgit

https://github.com/username/repo.git
git://github.com/username/repo.git

现在您可以使用SSH Key而不是usernamepassword

[编辑:]如果Git抱怨'origin' has already been added'origin' has already been added ,打开.config文件并在[remote origin]之后编辑url = "..."部分为url = ssh://github/username/repo.git


配置credential.helper

在OS X上(现在是macOS)在终端中运行它

git config --global credential.helper osxkeychain

它使git可以使用Keychain.app来存储用户名和密码,并从密钥链中将密码从密钥中检索到私钥ssh密钥。

对于Windows使用:

git config --global credential.helper wincred

故障排除

如果git凭证助手配置正确,macOS会将密钥保存在keychain中。 有时,ssh和存储在密钥链中的密码短语之间的连接可能会中断。 运行ssh-add -Kssh-add ~/.ssh/id_rsa再次将密钥添加到钥匙串中。

macOS 10.12 Sierra更改为ssh

对于macOS 10.12 Sierra ssh-add -K需要在每次重新启动后运行。 为了避免这种情况,用这个内容创建~/.ssh/config

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

从10.12.2的ssh_config man页:

UseKeychain

在macOS上,指定系统在尝试使用特定密钥时是否应在用户的钥匙串中搜索密码短语。 当用户提供密码短语时,该选项还指定密码短语是否应该存储到密钥链中,一旦它被验证为正确。 争论必须是'是'或'否'。 默认值是'否'。

苹果已经添加了解释发生了什么的Technote 2449。

在macOS Sierra之前,ssh会提供一个对话框询问您的密码,并提供选项将其存储到钥匙串中。 此用户界面在不久前已被弃用,并已被删除。


当我升级到macOS Sierra时,这发生在我身上。 看起来ssh代理在升级后被清除。

$ ssh-add -L
The agent has no identities.

简单地运行ssh-add找到我现有的身份,输入密码并重新输入。

链接地址: http://www.djcxy.com/p/22055.html

上一篇: Git keeps prompting me for password

下一篇: Git push requires username and password