使用公钥进行 SSH 身份验证失败

使用公钥进行 SSH 身份验证失败

我的 /home/user/.ssh 下有 id_rsa.pub 密钥。我小心地复制了该密钥,并将密钥粘贴到存储库 Git 帐户中。

当我尝试从本地系统连接到我的 git 存储库时,出现以下错误:

warning: Authentication failed.
Disconnected; no more authentication methods available (No further 
authentication methods available.)

我删除了系统中的 SSH,然后重新启用,但还是没用。我不知道我的 SSH 密钥出了什么问题。有人能告诉我吗?

注意:我注意到我的主页 /home/user/.ssh && /home/user/.ssh2

答案1

阅读有关整个公钥内容的更多信息'这里'. openssh 需要将公钥放在名为 的文件中~/.ssh/authorized_keys。您将它放在那里了吗?

答案2

嗯,sshUbuntu 使用 /home/user/.ssh 进行配置。不知道您从哪里得到那个 .ssh2;Tectia 的商业 SSH 客户端使用它,但您不使用它,对吧?为了安全起见,请将 .ssh2 移开(将其重命名为 .ssh2XXX,然后在一切正常时将其重命名)。

要解决问题,请尝试以调试模式连接:

ssh -vvv myuser@myhost 2>/tmp/ssh-debug-log

然后查看日志文件 /tmp/ssh-debug-log 以查看哪里出了问题。如果您无法弄清楚,请编辑您的问题以包含日志文件,然后我们再看看...

答案3

我不知道您是如何生成密钥的,但我的密钥是在 Windows 下使用 PuTTY 生成的,因此我可以从工作中远程访问我的 Linux 机器,我将公钥的内容复制/粘贴到 ~/.ssh/authorized_keys 文件中,然后它就出现了。我总是注意到一件事:密钥文件由一行文本组成,文件中没有硬回车。我还记得,在以前的密钥中,我遇到的主要问题是我从生成的文件中粘贴的公钥中有硬回车,将所有行连接在一起通常可以解决我的问题。

杰弗

答案4

您可以检查 .ssh 目录(应该是 700)和 authorized_keys 文件(应该是 644)的保护。此外,在服务器上,您可以从命令行使用 -d 选项运行 sshd 来查看授权过程的一些详细信息,即

sudo service sshd stop
/usr/sbin/sshd -d

相关内容