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

从 PuTTy 到 Debian 的 SSH“authorized_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并确保连接->SSH->Auth 身份验证方法已选中“尝试使用 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

我在 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

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

答案1

问题是:

User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file

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

答案2

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

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

相关内容