为什么 SSH 服务器说“authorized_keys 不是常规文件”?

为什么 SSH 服务器说“authorized_keys 不是常规文件”?

我一直在尝试使用 puttygen 生成的密钥配置登录,以便我可以禁用密码身份验证。

我从 puttygen 保存了私钥并将公共部分复制到我的 .ssh/authorized_keys 中,如下所示:

ssh-rsa AAAAB3Nza[...]1qRQ==

这是我在 sshd_config 中更改的内容

AuthorizedKeysFile .ssh/authorized_keys
UsePAM no

但每次我尝试用我的密钥登录时,服务器都会拒绝它。

在此输入图像描述

日志:

error: key_read: type mismatch: encoding error
sshd[735]: error: key_from_blob: can't read key type
sshd[735]: error: key_read: key_from_blob
User root authorized keys /root/.ssh/authorized_keys is not a regular file

stat /root/.ssh/authorized_keys说:

68 3451018 drw------- 2 root wheel 6903510 512 "Jan 28 18:12:08 2016" "Jan 28 17:40:50 2016" "Jan 28 17:46:22 2016" "Jan 28 17:40:42 2016" 32768 8 0 /root/.ssh/.authorized_keys

使用 FreeBSD 9.3

答案1

正如 Ulrich Schwarz 所指出的,.ssh/authorized_keys必须是常规文件。就您而言,它看起来像是一个目录。您需要删除该目录并创建一个包含密钥的文本文件。

答案2

我发现 puttygen 生成的密钥在我所做的几乎每一次尝试中都很麻烦。我不太清楚原因和方式,但我的 Linux 和其他旧版 UNIX 系统不接受它生成的文件格式。

我的建议是,一旦您进入服务器,请使用命令生成密钥

ssh-keygen -t rsa 

如果需要,请输入密码短语以及文件名和位置。然后将生成的公钥附加到授权密钥文件的末尾。将私钥复制(ftp 或 scp)到您的 PC。打开 puttygen 并使用导入密钥选项。在腻子界面上,使用新导入的密钥。

这种方法一直对我有用

相关内容