Ubuntu 混淆 ssh 密钥连接到 github

Ubuntu 混淆 ssh 密钥连接到 github

我最近安装了 Ubuntu 13.04,并像往常一样将我的 ssh 密钥添加到我的 github 帐户。我访问自己的报告没有任何问题,我可以克隆我的报告等......但今天,也许是因为任何更新?(我不知道),我无法连接到 github,它显示:权限被拒绝。当然,我已经添加了我的密钥。令我惊讶的是,如果我切换到另一个终端(例如 ALT + CTRL + F3)并且我使用与 Unity 默认终端相同的用户登录(可能存在问题)我可以连接!!

如果我使用默认终端(Unity)运行以下命令:

ssh -T [email protected]

它说:

代理承认无法使用密钥进行签名。权限被拒绝(公钥)。

但是如果我在另一个终端上运行相同的命令,它会要求我输入密码(为什么默认情况下它不要求我输入密码?)并且它可以正常运行并显示以下消息:

您好 --我的名字--!您已成功验证身份.....

有谁知道发生了什么事?

ssh -vT 的帖子[电子邮件保护]

> OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012 debug1: Reading
> configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config
> line 19: Applying options for * debug1: Connecting to github.com
> [204.232.175.90] port 22. debug1: Connection established. debug1:
> identity file /home/daniel/.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/daniel/.ssh/id_rsa-cert type -1 debug1: identity file
> /home/daniel/.ssh/id_dsa type -1 debug1: identity file
> /home/daniel/.ssh/id_dsa-cert type -1 debug1: identity file
> /home/daniel/.ssh/id_ecdsa type -1 debug1: identity file
> /home/daniel/.ssh/id_ecdsa-cert type -1 debug1: Remote protocol
> version 2.0, remote software version OpenSSH_5.5p1
> Debian-6+squeeze1+github12 debug1: match: OpenSSH_5.5p1
> Debian-6+squeeze1+github12 pat OpenSSH_5* debug1: Enabling
> compatibility mode for protocol 2.0 debug1: Local version string
> SSH-2.0-OpenSSH_6.1p1 Debian-4 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: 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 /home/daniel/.ssh/known_hosts:4 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: Offering RSA public key: /home/daniel/.ssh/id_rsa debug1:
> Server accepts key: pkalg ssh-rsa blen 279 Agent admitted failure to
> sign using the key. debug1: Trying private key:
> /home/daniel/.ssh/id_dsa debug1: Trying private key:
> /home/daniel/.ssh/id_ecdsa debug1: No more authentication methods to
> try. Permission denied (publickey).

答案1

Github 有关于这个问题的一篇文章

对于大多数用户来说,只需运行 ssh-add 将密钥加载到 SSH 代理中即可解决此问题。

$ ssh-add
# Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
# Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

如果你的密钥没有默认文件名,则必须将路径传递给 ssh-add

$ ssh-add ~/.ssh/my_other_key
# Enter passphrase for /home/you/.ssh/my_other_key: [tappity tap tap]
# Identity added: /home/you/.ssh/my_other_key (/home/you/.ssh/my_other_key)

相关内容