新手问题 验证 github 的 SSH 问题

zjnxzy · 2013年03月10日 · 最后由 zjnxzy 回复于 2013年03月10日 · 3759 次阅读

我按照https://help.github.com/articles/generating-ssh-keys 方法来生成了 SSH 的 private key 和 public key 但是到了第五步 Test everything out 时总是出现图片上的问题,但是我确定 passphrase 输入是没有问题的。 我的电脑操作系统是 windows7. 请您们帮忙看看怎么解决?我需要是 heroku,就是这个 SSH 的问题,弄了一天了,还是没解决。。。。

#1 楼 @nightire 不好意思刚才图片还没上传上来

#2 楼 @zjnxzy 如果你确认你的 passphrase 是对的,为何像上图那样要你输三次呢?

另外,最后一行显示授权被拒的原因是 public key,你确认一下在你的 ~/.ssh 下究竟有几对 keys?你确定你在 Github 上使用的是 id_rsa.pub 这个公钥吗?

如果不是(这就解释得通了),那么请试一下 $ ssh-add KEY_NAME 把另外的 key 也加进来,然后再去尝试连接。

#3 楼 @nightire 里面只有一对 keys 哦,我也感到很奇怪,为什么会要输入 3 次,我确实是使用生成 SSH 时的 passphrase

#3 楼 @nightire 这是我生成的 SHH 这个是我 github 上的 ssh-pub: 帮我看看是什么问题,谢谢您啦!

#4 楼 @zjnxzy 好吧,要不然你这样,重来一次,这次生成的时候不要输入 passphrase 试试能否成功;若是成功就证明问题出在 passphrase 身上,那时候你再添加 passphrase 即可:

# 修改 passphrase 的命令
$ ssh-keygen -f KEY_NAME -p PASSPHRASE
# or
$ ssh-keygen -f KEY_NAME -p -P OLD_PASS -N NEW_PASS

#5 楼 @zjnxzy 这里看没什么问题

#7 楼 @nightire 嗯嗯,我重新弄一次!我之前也试过没有 passphrase 的,但是也是同样的问题!

#7 楼 @nightire 这是没有使用 passphrase 的情况。

#7 楼 @nightire 还有这张图 ,这是我按照它解决 Permission denied (publickey) 出现的问题。 打扰您啦,但是我真的需要解决。。。

#10 楼 @zjnxzy 请输入以下命令并反馈结果

$ ssh -v [email protected]

#11 楼 @nightire 这是反馈结果。。。。

#12 楼 @zjnxzy

我上传了我这边的结果,和你的最后几行做个对比,奇怪的是为什么在你那里寻找私钥的时候,SSH 尝试了 identityid_dsa,但就是没有尝试 id_rsa

我看出了问题发生的地方,但是我不明白为什么会这样,我也不清楚 .ssh/identity是怎么回事,我只能帮你指出奇怪的地方在哪里,需要你自己进行进一步的排查。

目前我能想到的一个方法是使用 dsa 生成你的密钥试试,像这样:

$ ssh-keygen -t dsa -C "[email protected]"

我猜想,既然在你哪里 SSH 会去尝试 dsa 私钥,那么也许这样可以成功?

#13 楼 @nightire 刚才在网上找了些答案,网上说有一个可能,是将 public key 复制到 github 时 public key 可能会增加了很多空格,导致公钥不正确,不知道是不是这个原因?

#14 楼 @zjnxzy 这是一个可能的原因,但我不觉得是你这里的问题,因为你的公钥已经被服务器接受了的。请看这几行代码,大致意思如下:

  • 可以继续进行的验证:publickey
  • 下一个验证方法:publickey
  • 尝试私钥:identity(这里很奇怪,我不知道 identity 是什么,应该不存在这个私钥文件)
  • 提供公钥:id_rsa(这里是正常的)
  • 服务器接受了 ssh-rsa 公钥
  • 输入 passphrase
  • 尝试私钥:dsa(???为什么 rsa 没通过,又该去尝试 dsa 了?发生了什么事儿?)
  • 没有其他的方法可以尝试了
  • 授权拒绝(publickey)

OK,那么如果你认为是你复制的公钥格式有问题,这很好解决,重新复制一遍即可。记住,公钥的内容就是长长的一行,没有其他的,你把两头的空格与空行都删除就行了。

用下面的试试 ssh -i ~/.ssh/id_rsa -v [email protected]

#16 楼 @leopku 试了下,还是一样哦。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号