【问题标题】:Ubuntu Github ssh keys issueUbuntu Github ssh 密钥问题
【发布时间】:2011-01-09 05:56:40
【问题描述】:

我遵循了本指南中给出的每个步骤: http://help.github.com/linux-key-setup/

当我完成时,我可以 ssh 到 git@github.com,得到响应:

通道 0 上的 PTY 分配请求失败 嗨亚历克斯巴拉诺斯基!您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。 与 github.com 的连接已关闭

但是当我去克隆我的仓库时,它失败了:

权限被拒绝(公钥)。 致命:远端意外挂断

我经常使用 Github,但这是我第一次在 Ubuntu 计算机上使用它,这里有什么我遗漏的吗?

非常感谢任何帮助。

亚历克斯

编辑:

ssh -v git@github.com的内容

alex@ubuntu:~/proj$ ssh -v git@github.com
OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [207.97.227.239] port 22.
debug1: Connection established.
debug1: identity file /home/alex/.ssh/identity type -1
debug1: identity file /home/alex/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/alex/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5github2
debug1: match: OpenSSH_5.1p1 Debian-5github2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4
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<1024<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: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/alex/.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: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/alex/.ssh/id_rsa
debug1: Remote: Forced command: gerve AlexBaranosky
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Remote: Forced command: gerve AlexBaranosky
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.utf8
PTY allocation request failed on channel 0
Hi AlexBaranosky! You've successfully authenticated, but GitHub does not provide shell access.
              debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to github.com closed.
Transferred: sent 2592, received 2904 bytes, in 0.1 seconds
Bytes per second: sent 44942.9, received 50352.7
debug1: Exit status 1

运行输出:git clone git@github.com:AlexBaranosky/Sportello.git

fatal: could not create work tree dir 'Sportello'.: Permission denied

【问题讨论】:

  • 嗯?为什么是-1?如果它属于其他地方,请说出来。

标签: github ssh-keys


【解决方案1】:

您是否以 root 身份运行了 Github 指南中的所有命令?鉴于您已经提到的解决方案,这是我目前可以想象的唯一方案。

在任何方面,以 root 身份工作都是极其危险的,应尽可能避免。

我强烈建议以您自己的用户身份重新运行这些说明。我支持 Ray 的建议,即使用 -v 再次尝试,我们可以从那时起为您提供帮助。完全使用root,特别是对于这种开发+推送过程,是很危险的。您只需删除一棵树 (rm -rf tree*) 并意外在树和 * 之间添加一个空格,bam,大量内容丢失。你也可以做得更糟。

【讨论】:

  • 链接示例中的一切正常,然后我去克隆我的回购:
  • alex@ubuntu:~/proj$ git clone git@github.com:AlexBaranosky/Sportello.git 致命:无法创建工作树目录“Sportello”。:权限被拒绝
  • 我会把 ssh -v git@github.com 的结果贴在上面的问题文本中,谢谢你的帮助。
  • 啊哈!所以我必须在创建 proj 文件夹时使用 sudo mkdir proj?所以我删除了 /proj 并重新制作了它,然后做了 git clone,它成功了!感谢所有帮助,非常感谢。
  • 不客气。这就是为什么你不以 root 身份工作,也不过度滥用 sudo :)。
【解决方案2】:

ssh 可能会尝试多个密钥,直到找到一个有效的密钥。 (令人困惑但稳健)

在详细模式下:

ssh -v git@github.com

您将看到 ssh 使用哪个密钥进行身份验证。

然后您可以重新设置密钥或将正确的文件名添加到主机 github.com 的 ~/.ssh/config

干杯

【讨论】:

  • 你认为这与此有关吗?:anujgakhar.com/2010/12/28/… 所有这些 sudo 的东西一开始有点令人困惑。
  • 也许它为 root 尝试的第一个密钥是正确的,而您的其他用户有不同的顺序?两个用户上的 ssh -v 可能有助于回答这个问题。
【解决方案3】:

我在一台新配置的 Ubuntu 机器上,必须确保我的 SSH 密钥配置正确。 http://help.github.com/linux-set-up-git/

【讨论】:

    猜你喜欢
    • 2014-10-28
    • 2016-06-07
    • 2012-06-07
    • 2016-01-19
    • 2018-07-14
    • 2014-02-19
    • 2020-10-17
    • 2020-05-30
    • 2014-05-14
    相关资源
    最近更新 更多