权限被拒绝(公钥) - 不能用Git推或拉

时间:2014-12-14 07:48:27

标签: windows git bitbucket git-bash ssh-keygen

Git在推向Bitbucket方面做得很好,直到最近除了DNS服务器设置的变化之外,还有很多变化。

错误:

  

许可被拒绝(公钥)。
  致命的:无法从远程存储库读取。

     

请确保您拥有正确的访问权限   存储库存在。

我使用keygen创建一个新密钥,使用Git Bash添加密钥(添加并接受密钥),然后手动将密钥添加到Bitbucket SSH。但是,它仍然会产生同样的错误。

不确定出了什么问题,是否有人有相同的经验并能够提供帮助?


其他信息或尝试排查

  • git remote -v,一次推,列出一个拉项
  • ssh -T git@bitbucket.org - 错误:权限被拒绝(公钥)。
  • ssh-add -l - 错误:无法打开与身份验证代理的连接。
  • ssh -vT git@github.com - 错误
  

ssh -Tv git@bitbucket.org OpenSSH_6.6.1,OpenSSL 1.0.1i 2014年8月6日

debug1: Connecting to bitbucket.org [131.103.20.167] port 22.
debug1: Connection established.
debug1: identity file /.ssh/id_rsa type -1
debug1: identity file /.ssh/id_rsa-cert type -1
debug1: identity file /.ssh/id_dsa type -1
debug1: identity file /.ssh/id_dsa-cert type -1
debug1: identity file /.ssh/id_ecdsa type -1
debug1: identity file /.ssh/id_ecdsa-cert type -1
debug1: identity file /.ssh/id_ed25519 type -1
debug1: identity file /.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 97:8c /* rest of numbers */
debug1: Host 'bitbucket.org' is known and matches the RSA host key.
debug1: Found key in /.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: /.ssh/id_rsa
debug1: Trying private key: /.ssh/id_dsa
debug1: Trying private key: /.ssh/id_ecdsa
debug1: Trying private key: /.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).


  - ssh-agent -s,错误:

SSH_AUTH_SOCK=/tmp/ssh-2KEE1p8SGXPg/agent.1900; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2712; export SSH_AGENT_PID;
echo Agent pid 2712;

3 个答案:

答案 0 :(得分:1)

消息&#34;无法打开与您的身份验证的连接&#34;意味着没有代理正在运行(或至少无法访问)。

ssh-agent bash        # start a new agent
ssh-add               # add your key
ssh-add -L            # verify that your key is the same as on the server

ssh git@bitbucket.org             # should work now 
git clone git@bitbucket.org:xyz   # (or something like this) should work, too

答案 1 :(得分:1)

您需要运行ssh-agent命令,然后导出运行时显示的变量。要做到这一点,你可以这样做:

eval `/usr/bin/ssh-agent`

ssh-agent命令的输出是一个有效的shell脚本,在执行时(也称为evaled)将设置ssh-agent程序与使用它的其他程序之间通信所需的正确env变量。 / p>

在运行此命令之前,请确保删除现有的ssh-agent进程。

之后使用通常的ssh-add命令列出并添加密钥,然后ssh应该可以正常工作。

答案 2 :(得分:1)

我知道这个答案可能不是最好的答案,但我设法让它使用以下步骤。 (免责声明:我还不知道出了什么问题)

  1. 在Git Bash中逐个kill PIDnumber逐个杀死所有ssh-agent进程。不知怎的,我有一个完整的代理进程运行列表。当我尝试从系统中卸载Git时,我看到了这个PID列表。
  2. 从计算机上卸载Git
  3. 从Bitbucket repo中删除所有SSH密钥 - (通过浏览到BB网站手动删除)
  4. 重新安装Git并在Git bash中,ssh -T git@bitbucket.org +输入了密码,以便用户登录并确认
  5. 添加了现有的rsa_pub键(我只是将rsa_pub文件拖到sublime文本中,复制了密钥并将其粘贴回同一个repo中的bitbucket)
  6. 然后从nodejs的命令行实用程序中拉出