【问题标题】:Bitbucket SSH authenticationBitbucket SSH 身份验证
【发布时间】:2013-03-18 18:04:33
【问题描述】:

我在连接 SSH 服务时遇到问题,

ssh-agent 正在运行:

ps -e | grep ssh

12163 ? 00:00:00 ssh-代理

并缓存我唯一的身份:

ssh-add -l

4096 25:56:f4:9c:09:65:fe:39:b3:17:73:bd:3c:76:3f:8d /home/matthias/.ssh/id_rsa (RSA)

一切都应该存在:

ls ~/.ssh/

id_rsa id_rsa.pub known_hosts

并且 id_rsa.pub 被上传到 Bitbucket.org SSH-Keys 部分..

但是 SSH 身份验证失败(使用详细模式,可以看到,它以某种方式尝试加载不存在的 id_dsa 文件)

ssh -v -T hg@bitbucket.org
[...]
debug1:下一个认证方法:publickey
debug1:提供 RSA 公钥:/home/matthias/.ssh/id_rsa
debug1:可以继续的身份验证:publickey
debug1:提供 RSA 公钥:/home/matthias/.ssh/id_rsa
debug1:远程:强制命令:conq 用户名:matthias_hueser
debug1:远程:端口转发已禁用。
debug1:远程:X11 转发已禁用。
debug1:远程:代理转发已禁用。
debug1:远程:Pty 分配已禁用。
debug1:服务器接受密钥:pkalg ssh-rsa blen 535
debug1:key_parse_private_pem:PEM_read_PrivateKey 失败
debug1:读取 PEM 私钥完成:键入
输入密钥“/home/matthias/.ssh/id_rsa”的密码:
debug1:读取 PEM 私钥完成:键入 RSA
debug1:远程:强制命令:conq 用户名:matthias_hueser
debug1:远程:端口转发已禁用。
debug1:远程:X11 转发已禁用。
debug1:远程:代理转发已禁用。
debug1:远程:Pty 分配已禁用。
debug1:可以继续的身份验证:publickey
debug1:尝试私钥:/home/matthias/.ssh/id_dsa
没有这样的身份:/home/matthias/.ssh/id_dsa:没有这样的文件或目录
debug1:尝试私钥:/home/matthias/.ssh/id_ecdsa
没有这样的身份:/home/matthias/.ssh/id_ecdsa:没有这样的文件或目录
debug1:没有更多的身份验证方法可以尝试。
权限被拒绝(公钥)。

有没有其他人遇到过同样的问题并且有 建议?

[感谢编辑]

【问题讨论】:

  • ~/.ssh 的权限是 700,您的密钥是 600 吗?从调试日志看来,这不是问题所在。

标签: ssh


【解决方案1】:

您看到的输出看起来与服务器拒绝您的 id_rsa 密钥一致。 ssh 将检查 id_rsaid_dsaid_ecdsa,即使您没有在命令行中指定它们或将它们加载到您的 ssh-agent 中。

如果我要对此进行故障排除,我会从图片中删除 ssh-agent 并在命令行中指定您的私钥。

在之后关闭的新 shell 中运行它,这样就不会破坏现有环境:

$ bash
$ unset SSH_AGENT_PID SSH_AUTH_SOCK
$ ssh -v -T -i ~/.ssh/id_rsa hg@bitbucket.org
[...]
$ exit

(ssh-keygen 会提示您输入密钥的密码)


如果可行,我会仔细检查您的 ssh-agent 提供的密钥是否确实正确。你可以

$ ssh-keygen -y -f ~/.ssh/id_rsa

并根据您的 ssh-agent 中的内容进行检查:

$ ssh-add -L

如果您的代理中的身份不同,您应该使用ssh-add -D 转储您的密钥并重新加载它们。如果没有不同,我不确定发生了什么。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2019-09-28
    • 2017-08-16
    • 1970-01-01
    • 2014-11-13
    • 2015-12-03
    • 2021-04-16
    • 2017-06-25
    • 2014-05-20
    相关资源
    最近更新 更多