SSH from PuTTy to Debian "authorized_keys is not a regular file" Error
I cannot connect from my Windows 7 computer using PuTTy to a newly configured Debian Squeeze server using SSH RSA key authentication.
I get this error when running SSH in debug mode:
User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file
What I've done so far:
- ssh-keygen -t rsa
- Set passphrase.
- Copied the id_rsa.pub file to
~/.ssh/authorized_keys
- Copied the id_rsa to a text file on my Windows 7 machine
- Imported the key into
puttygen.exe
and converted it to a.ppk
private key file. - Loaded that private key file into
pageant.exe
and made sure Connection->SSH->Auth Authetication methods had "Attempt authenticaiton using Pageant" checked. - Loaded the profile.
Based off of the FAQ from OpenSSH.org, I changed the permissions to the following:
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
I started debug mode on ssh, and got the following:
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
I'm at a loss as to what else to check. I haven't setup SELinux or anything. Any ideas would be much appreciated.
The problem is:
User myuser authorized keys /home/myuser/.ssh/authorized_keys is not a regular file
It appears you've made a directory named authorized_keys
and put all your key files in it. This is why it's not working. authorized_keys
is meant to be a regular file, and you can put all your keys in ~/.ssh
.
The main problem is that ~/.ssh/authorized_keys
should not be a directory. It is a text file that contains the public keys appended one line after the other.
Since you only have one key, simply move out the ~/.ssh/authorized_keys/id_rsa.pub
file to a temporary location, delete the ~/.ssh/authorized_keys
directory, then move back the public key file by renaming it to ~/.ssh/authorized_keys
. You should now be able to connect without using a login password.