我上传了我的~/.ssh/id_rsa。但是Git仍然会在每次操作(比如Git pull)时询问我的密码。我错过什么了吗?
它是一个私有存储库(另一个人的私有存储库的分支),我像这样克隆它:
git clone git@bitbucket.org:Nicolas_Raoul/therepo.git
这是我本地的。git/config:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://Nicolas_Raoul@bitbucket.org/Nicolas_Raoul/therepo.git
[branch "master"]
remote = origin
merge = refs/heads/master
在相同的环境下,使用相同的公钥,Github上的Git可以正常工作。
. ssh rwx -, . ssh / id_rsa - r -------, . ssh / id_rsa。Pub是-rw-r——r——
下面假设通过iTerm / Terminal命令行访问bitbucket。
对于MacOS Sierra 10.12.5,我的系统出现了一个同样的问题——在每个连接到bitbucket时都要求我的SSH密码。
此问题与macOS 10.12.2中的OpenSSH更新有关,此处的技术说明TN2449中对此进行了描述。
您很可能想要定制您的解决方案,但是当添加到您的~/时,以下内容将会起作用。ssh /配置文件:
Host *
UseKeychain yes
有关ssh配置的更多信息,请查看ssh_config的手册页:
% man ssh_config
还有一件事:这里有一篇关于超级用户的很好的文章,讨论了这个问题,并根据您的需求和设置提供了各种解决方案。
您可能需要仔细检查您的SSH身份文件。你可能会引导BitBucket查看你在BitBucket中保存的等效公钥的不同/不正确的私钥。
用尾巴检查~/。Ssh /config -你会看到类似的东西:
Host bitbucket.org
HostName bitbucket.org
IdentityFile ~/.ssh/personal-bitbucket-ssh-key
请记住,添加额外的身份(如工作和家庭)可以通过ssh-add命令完成,例如:
ssh-keygen -t rsa -C "companyName" -f "companyName"
ssh-add ~/.ssh/companyName
一旦你确认了哪个私钥在本地被查看,你就可以获取你的公共等价密钥,在这种情况下:
cat ~/.ssh/personal-bitbucket-ssh-key.pub | pbcopy
然后把密码粘贴到BitBucket上。你的git推送现在将被允许(前提是你使用的是前面提到的答案所指出的SSH克隆)没有密码,因为你的设备是一个公认的友好。
希望这能帮你弄清楚。
我用HTTPS URL克隆了存储库,而不是SSH URL,因此即使在添加SSH密钥后,它也在Bash Shell上询问我的密码。
我只是编辑了。/。并通过简单地将https://替换为ssh://来改变url变量的值
E.g.
[core]
...
...
...
[remote "origin"]
url = https://<username>@bitbucket.org/<username>/<repository_name>.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
...
...
更改为:
[core]
...
...
...
[remote "origin"]
url = ssh://<username>@bitbucket.org/<username>/<repository_name>.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
...
...
实际上,这些答案都没有反映Git的当前技术状态(在撰写本文时是v2.29)。在最新版本的Git中,cache、winstore、wincred已弃用。
如果你想通过HTTPS克隆一个Bitbucket存储库,例如。
Git 克隆 https://Kutlime@bitbucket.org/SomeOrganization/SomeRepo.git
你必须:
在Bitbucket用户管理中生成应用程序密码。
相应地在.gitconfig中设置凭据方法(全局或本地)
[credential]
helper = manager
您可以通过执行此命令找到您的.gitconfig。
git config --list --show-origin
执行
git clone https://Kutlime@bitbucket.org/SomeOrganization/SomeRepo.git
并等待,直到登录窗口出现。使用url中的用户名(在我的例子中是kutlime)和您生成的应用程序密码作为密码。