这个 ssh 错误是什么意思?

kev*_*vin 9 ssh rsa keys private-key

这是我最后的手段。几个小时以来,我一直试图在这里找出问题所在。

交易如下:我已将我的私钥从机器 #1 复制到机器 #2。机器 #1 能够使用我的公钥通过 ssh 连接到服务器就好了,但是当尝试连接到服务器时,机器 #2 提供以下输出:

$ ssh -vvv -i /home/kevin/.ssh/kev_rsa user@192.168.1.244 -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace

...


Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

显然我省略了更多的调试输出,我可以根据要求提供。但是我确信它不喜欢我的私钥文件。

我还怀疑这与我如何将它从机器 #1 复制到机器 #2 有关。我将私钥中的文本复制/粘贴到闪存驱动器上。这可能是问题所在,但是,当我在另一个工作私钥文件上复制此方法,并对原始文件与复制/粘贴文件进行比较时,它们是相同的。

我一直在努力解决这个问题。如果我能得到更多关于它为什么不喜欢我的钥匙的信息,我肯定可以修复它。有人对此有任何想法吗?某处是否有一些元数据告诉 ssh 文件实际上是 RSA 密钥?

Sco*_*ack 7

根据我的经验,两个最常见的基于密钥的身份验证错误是

  1. $HOME/.ssh目录的不当广泛权限
  2. 将公钥复制到远程系统时出错

文件权限

OpenSSH 做了很多尝试来保护您免受自己的伤害。发生这种情况对用户影响最大的方式是对谁可以访问您的本地 ssh 文件夹实施严格的限制。您真的只希望您,也只有您,才能访问该目录。好吧,任何 uid=0 的人,但没有什么好方法可以解决这个问题。因此,您需要做的只是更改您的权限:chmod -R go-rwx ~/.ssh这将删除除所有者之外的所有用户(即您)对 .ssh 目录下的任何文件的读取、写入和执行权限。

授权密钥问题

包含您的公钥的文件通常$HOME/.ssh/authorized_keys必须符合 SSH 的非常特定的形式,才能了解如何接受私钥。每个键必须至少包含 2 个字段

  1. 使用的密钥类型(RSA、DSA、RSA1 等)
  2. 钥匙

每个键及其所有选项和组成部分都必须在此文件的每行中列出一个。由于键往往很长,它们通常会环绕并在您的终端上显示为两行。这有时会在尝试复制/粘贴时造成严重破坏,因为有时会在键环绕屏幕的任何位置插入一个或多个换行符。对于 shell 初学者来说,解决这个问题可能有点棘手。

尝试运行
wc -l ~/.ssh/authorized_keys
这将打印出文件中的行数。将该数字与您希望在文件中的键数进行比较。如果您只接受这一个密钥,您也可以只制作公钥文件的副本,因为它与您的授权密钥文件格式相同。像
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
或者,如果你在同一个系统上有你的公钥,你可以做
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys

此外,查看远程主机上的日志文件,看看那里是否报告了任何错误。这些文件很可能是/var/log/secure.log/var/log/auth


ae.*_*ae. -3

尝试比较两个服务器之间的 ssh 配置文件。

IE。像 cat /etc/sshd_config 这样的东西