I have the same exact problem described in this thread, but the answer accepted there is not the right one for me, because the user's home directory is local.
I think that I configured everything properly on the client side (Windows 7, PuTTY's PAGEANT, PUTTYGEN and PLINK), yet I don't seem to make the public key mechanism work (password based ssh login works). I followed all the steps, cues and hints in:
- How To Configure SSH Keys Authentication With PuTTY And Linux Server In 5 Quick Steps
- SSH Public Key Authentication
I now suspect that I may be missing something on the server side (Linux, sshd), so I am posting the current
Protocol 2 SyslogFacility AUTHPRIV RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no PermitEmptyPasswords yes ChallengeResponseAuthentication no UsePAM yes X11Forwarding yes Subsystem sftp /usr/libexec/openssh/sftp-server
Any idea what I am doing wrong?
UPDATE: I found a tip for running sshd in debug mode, and here is the output:
/home/winwin> /usr/sbin/sshd -d debug1: sshd version OpenSSH_4.2p1 debug1: read PEM private key done: type RSA debug1: private host key: #0 type 1 RSA debug1: read PEM private key done: type DSA debug1: private host key: #1 type 2 DSA debug1: rexec_argv='/usr/sbin/sshd' debug1: rexec_argv='-d' debug1: Bind to port 22 on ::. Server listening on :: port 22. debug1: Bind to port 22 on 0.0.0.0. Bind to port 22 on 0.0.0.0 failed: Address already in use. debug1: Server will not fork when running in debugging mode. debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7 debug1: inetd sockets after dupping: 3, 3 Connection from 192.168.1.8 port 49828 debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60 debug1: no match: PuTTY_Release_0.60 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.2 debug1: permanently_set_uid: 74/74 debug1: list_hostkey_types: ssh-rsa,ssh-dss debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: client->server aes256-ctr hmac-sha1 none debug1: kex: server->client aes256-ctr hmac-sha1 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: KEX done debug1: userauth-request for user winwin service ssh-connection method none debug1: attempt 0 failures 0 debug1: PAM: initializing for "winwin" debug1: PAM: setting PAM_RHOST to "win7client" debug1: PAM: setting PAM_TTY to "ssh" Failed none for winwin from 192.168.1.8 port 49828 ssh2 debug1: userauth-request for user winwin service ssh-connection method publickey debug1: attempt 1 failures 1 debug1: test whether pkalg/pkblob are acceptable debug1: temporarily_use_uid: 513/513 (e=0/0) debug1: trying public key file /home/winwin/.ssh/authorized_keys Authentication refused: bad ownership or modes for directory /home/winwin debug1: restore_uid: 0/0 debug1: temporarily_use_uid: 513/513 (e=0/0) debug1: trying public key file /home/winwin/.ssh/authorized_keys Authentication refused: bad ownership or modes for directory /home/winwin debug1: restore_uid: 0/0 Failed publickey for winwin from 192.168.1.8 port 49828 ssh2 Received disconnect from 192.168.1.8: 14: No supported authentication methods available debug1: do_cleanup debug1: PAM: cleanup debug1: do_cleanup debug1: PAM: cleanup
Now, I do notice the two
bad ownership or modes for directory /home/winwin messages but I checked the ownership or modes for directory /home/winwin and AFAICT they're OK:
/home> ls -lad winwin drwxrwxr-x 21 winwin winwin 4096 Jul 13 21:24 winwin
/home/winwin> ls -lad .ssh drwxr-xr-x 2 winwin winwin 4096 Jul 14 12:06 .ssh
/home/winwin/.ssh> ls -lad * -rw-r--r-- 1 winwin winwin 210 Jul 14 12:06 authorized_keys -rw-r--r-- 1 winwin winwin 210 Jul 14 01:58 authorized_keys.pub -rw-r--r-- 1 winwin winwin 394 Jul 14 01:57 authorized_keys.pub.orig
What could possibly be wrong?
UPDATE II: I tried
chmod 600 as suggested in the answer below:
/home/winwin> ls -lad .ssh drw------- 2 winwin winwin 4096 Jul 14 13:13 .ssh
/home/winwin/.ssh> ls -lad * -rw------- 1 winwin winwin 210 Jul 14 12:06 authorized_keys
But it still doesn't work. Why am I still getting the
Authentication refused: bad ownership or modes for directory /home/winwin error?