Github权限被拒绝:ssh add agent没有身份
这是我第一次访问Github,我没有经验使用控制台。 我在Macbook上(使用Bash)。 当我尝试访问Github时,我得到这个:
git clone git@github.com:dhulihan/league-of-legends-data-scraper.git Cloning into 'league-of-legends-data-scraper'... Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
我试过按照Github页面上有关权限被拒绝的说明当我使用ssh -vT git@github.com,我得到以下:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 debug1: Reading configuration data /etc/ssh_config debug1: /etc/ssh_config line 20: Applying options for * debug1: Connecting to github.com [192.30.252.129] port 22. debug1: Connection established. debug1: identity file /Users/XXXX/.ssh/id_rsa type -1 debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1 debug1: identity file /Users/XXXX/.ssh/id_dsa type -1 debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.2 debug1: Remote protocol version 2.0, remote software version libssh-0.6.0 debug1: no match: libssh-0.6.0 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-sha1 none debug1: kex: client->server aes128-ctr hmac-sha1 none debug1: sending SSH2_MSG_KEXDH_INIT debug1: expecting SSH2_MSG_KEXDH_REPLY debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /Users/XXXX/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /Users/XXXX/.ssh/id_rsa debug1: Trying private key: /Users/XXXX/.ssh/id_dsa debug1: No more authentication methods to try. Permission denied (publickey).
接下来,eval“$(ssh-agent -s)”返回“Agent pid 2314”但是,ssh-add -l返回“代理没有标识”。
而这就是我卡住的地方。 我试着用Googlesearch这个问题,然后在这里search。 我已经尝试访问ssh目录中的文件,但没有。 只是一个名为Knownusers的文件夹。
有人可以帮我解决这个问题吗?
在这个答案的全部细节。
总之,当ssh-add -l
返回The agent has no identities
这意味着ssh
使用的密钥(存储在诸如〜/ .ssh / id_rsa,〜/ .ssh / id_dsa等的文件中)缺失,它们是身份validation代理( ssh-agent
)不知道,或者他们的权限设置不正确(例如,世界可写)。
如果你的密钥丢失(即你没有生成任何密钥),使用'ssh-keygen'(例如, ssh-keygen -t rsa
)来生成密钥,然后使用ssh-add
添加它们。
如果密钥存在,但不知道ssh-agent
(例如,它们可能在非标准文件夹中),使用'ssh-add'(例如, ssh-add /path/to/my-ssh-folder/id_rsa
)添加它们。
如果您遇到了ssh-add
或ssh-agent
麻烦,请参阅此答案 。
尝试这个:
ssh-add ~/.ssh/id_rsa
为我工作
我终于解决了同样的问题。
我的问题是 :我无法执行任何操作。 我可以检查并看到我的远程(使用git remote -v
),但是当我执行git push origin master
,它返回: Permission denied (publickey). fatal: Could not read from remote repository.
Permission denied (publickey). fatal: Could not read from remote repository.
所以。
我如何解决它:
- 我使用
ssh-keygen -t rsa
生成密钥 。 input密钥文件的名称(当被问到时)是无用的。 - 然后我可以添encryption钥(混帐) :
ssh-add /Users/federico/.ssh/id_rsa
,成功返回Identity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
- 我 使用此帮助页面 将SSH密钥添加到github 。
- 在Github的'Permission denied publickey'帮助页面中尝试了所有的命令后,只有
ssh-add -l
命令工作/看起来很有用(在执行了前面的步骤之后),它成功地返回了我的密钥。 最后一步显示您在GitHub页面上检查公钥的位置。 这个命令将帮助你检查所有的密钥:ls -al ~/.ssh
。
然后推命令最终工作!
我希望这个能帮上忙 ! 祝大家好运。
2017年的答复macOs Sierra&High Sierra:
PS:大多数其他答案将让你创build一个新的SSH密钥…但你不需要这样做:)
正如https://openradar.appspot.com/27348363所详细描述的那样,macOS / OS X直到Yosemite用于记忆由命令ssh-add -K <key>
SSH密钥
所以这里有四个步骤我必须采取为了它的工作:
1: ssh-add ~/.ssh/PATH_TO_YOUR_SSH_PRIVATE_KEY (eg ~/.ssh/id_rsa)
2:在~/.ssh/config
添加以下内容
Host * AddKeysToAgent yes UseKeychain yes IdentityFile PATH_TO_YOUR_SSH_PRIVATE_KEY (eg ~/.ssh/id_rsa)
3:确保删除任何使用osxkeychain helper的gitconfig条目:
https://github.com/gregory/dotfiles/commit/e38000527fb1a82b577f2dcf685aeefd3b78a609#diff-6cb0f77b38346e0fed47293bdc6430c6L48
4:重新启动您的terminal使其生效。
运行以下命令:
ssh-keygen -t rsa ssh-add /Users/*yourUserNameHere*/.ssh/id_rsa** pbcopy < ~/.ssh/id_rsa.pub**
转到您的Github帐户: https : //github.com/settings/profile
1)单击:SSH和GPG密钥
2)新的SSH密钥,并在那里过去
3)添加SSH密钥
完成!