ssh-keygen -t rsa -b 2048
我创建了带有参数的键,并且还尝试了不带有参数的键ssh-keygen
(应该是相同的)。- 私钥位于 .ssh/id_rsa
- 其权限为600
- .ssh目录权限为700
- 它没有使用密码
- 使用
-i <key file>
没有效果。 - 远程服务器日志未提及密钥失败。它看起来就像是正常的密码登录。这就是为什么我认为一定是本地 ssh 未找到密钥。
我不知所措。我可以使用另一个盒子(Windows 盒子,使用 PuTTY)中的密钥通过 ssh 连接,所以我知道它在服务器上工作正常。我的本地 Linux 是 Mint,它是 Ubuntu 的衍生产品,但我怀疑这与任何事情都没有任何关系。
- 我尝试运行
ssh-agent
,但两者都没有执行任何操作(在告诉我它正在添加我的身份之后),而且似乎只适用于密码密钥文件,而我的不是。
以下是 ssh 命令的结果ssh -l remoteusername -p 85 domain.com -vvv
:https://pastebin.com/n2ef8qGv
该输出来自我没有使用 -i 的时候。但我指定的文件无论如何都是 .ssh/id_rsa,它是相同的。
解决了。问题出在服务器上的 authorized_keys 文件的格式上。我将两个密钥连接在一起,因为我的搜索显示格式就是这样。但它们需要用换行符分隔。
因为 /var/log/auth.log 对此只字未提,所以我假设问题不在于服务器。我想我错了。我知道上次我遇到 ssh 问题时日志显示了它。事实上,刚才我故意破坏了它并尝试登录,日志中没有关于密钥登录失败的任何信息。我在本地收到消息“服务器拒绝我们的密钥”,这很好,但 /var/log/auth.log 或 中没有任何关于服务器的信息journalctl _COMM=sshd
。