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

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

在debugging模式下运行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 Authenticate方法具有“尝试使用Pageant进行身份validation”选中。
  7. 加载configuration文件。

基于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上启动了debugging模式,得到了以下结果:

 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或任何东西。 任何想法将不胜感激。

问题是:

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

看来你已经创build了一个名为authorized_keys的目录,并把所有的密钥文件放在里面。 这就是为什么它不工作。 authorized_keys是一个普通的文件,你可以把所有的密钥放在~/.ssh

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

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