从 PuTTy 到 Debian 的 SSH“authorized_keys 不是常规文件”错误

tac*_*day 9 debian ssh putty ssh-keys

我无法使用 PuTTy 从我的 Windows 7 计算机连接到使用 SSH RSA 密钥身份验证的新配置的 Debian Squeeze 服务器。

在调试模式下运行 SSH 时出现此错误: User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file


到目前为止我所做的:

  1. ssh-keygen -t rsa
  2. 设置密码。
  3. 将 id_rsa.pub 文件复制到 ~/.ssh/authorized_keys
  4. 将 id_rsa 复制到我的 Windows 7 机器上的文本文件
  5. 将密钥导入puttygen.exe并转换为.ppk私钥文件。
  6. 将该私钥文件加载到pageant.exe并确保 Connection->SSH->Auth Authetication 方法已选中“尝试使用 Pageant 进行身份验证”。
  7. 加载了配置文件。

根据来自 OpenSSH.org常见问题解答,我将权限更改为以下内容:

drwxr-xr-x 3 root   root   4096 Aug 13 14:16 /home
drwxr-xr-x 7 myuser myuser 4096 Aug 17 12:55 /home/myuser
drwx------ 3 myuser myuser 4096 Aug 17 13:24 /home/myuser/.ssh
drw------- 2 myuser myuser 4.0K Aug 17 13:23 /home/myuser/.ssh/authorized_keys
-rw------- 1 myuser myuser  396 Aug 17 13:17 /home/myuser/.ssh/authorized_keys/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

我在 ssh 上启动了调试模式,并得到以下结果:

debug1: userauth-request for user myuser service ssh-connection method publickey
debug1: attempt 1 failures 0
debug1: test whether pkalg/pkblob are acceptable
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: temporarily_use_uid: 1000/1000 (e=0/0)
debug1: trying public key file /home/myuser/.ssh/authorized_keys
User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file
debug1: restore_uid: 0/0
Failed publickey for myuser from 10.1.1.1 port 50710 ssh2
Run Code Online (Sandbox Code Playgroud)

我不知道还有什么要检查的。我还没有设置 SELinux 或任何东西。任何想法将不胜感激。

Mic*_*ton 15

问题是:

User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file
Run Code Online (Sandbox Code Playgroud)

看来您已经创建了一个名为的目录authorized_keys并将所有密钥文件放入其中。这就是它不起作用的原因。authorized_keys应该是一个常规文件,您可以将所有密钥放在~/.ssh.


小智 7

主要问题是~/.ssh/authorized_keys不应该是目录。它是一个文本文件,其中包含一行一行附加的公钥。

由于您只有一个密钥,只需将~/.ssh/authorized_keys/id_rsa.pub文件移出到一个临时位置,删除~/.ssh/authorized_keys目录,然后将公钥文件重命名为~/.ssh/authorized_keys. 您现在应该能够在不使用登录密码的情况下进行连接。