2

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;
4

4 回答 4

1

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

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
于 2014-12-14T14:12:57.177 回答
1

您需要运行ssh-agent命令,然后导出运行时显示的变量。为此,您可以执行以下操作:

eval `/usr/bin/ssh-agent`

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

只需确保ssh-agent在运行此命令之前终止现有进程即可。

之后使用常用ssh-add命令列出和添加键,然后你ssh应该可以正常工作了。

于 2014-12-14T18:50:11.743 回答
1

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

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

这对我有用:

  1. 生成新的 SSH 密钥后 (ssh-keygen -t rsa)
  2. 并将其添加到 bitbucket 站点(cat ~/.ssh/bitbucket.pub ...)
  3. 如果您仍然无法连接,请执行以下操作:

    1. 评估 ssh-agent -s
    2. ssh-添加位桶                         
    3. 现在再试一次 
于 2015-09-13T15:35:40.603 回答