Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I just setup my new server as I used to, and this time I can't login using my private key.

The server is ubuntu 11.04. And I have setup following ssh key directories.

root@myserv: ls -la 
drwx------  2 root root 4096 Sep 23 03:40 .ssh

And in .ssh directory, I have done chmod 640 authorized_keys

Here is the ssh connection tracebacks:

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to [my.server.ip] [[my.server.ip]] port 22.
debug1: Connection established.
debug1: identity file /Users/john/.ssh/id_rsa type -1
debug1: identity file /Users/john/.ssh/id_rsa-cert type -1
debug1: identity file /Users/john/.ssh/id_dsa type 1
debug1: identity file /Users/john/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA ef:b8:8f:b4:fc:a0:57:7d:ce:50:36:17:37:fa:f7:ec
debug1: Host '[my.server.ip]' is known and matches the RSA host key.
debug1: Found key in /Users/john/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/john/.ssh/id_rsa
debug1: Offering RSA public key: /Users/john/.ssh/id_dsa
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
root@[my.server.ip]'s password: 

Update:

I have found the reason but I can't explain it yet.

It is caused by uploading the key using rsync -chavz instead of scp, after I used scp to upload my key, the issue is gone. Can someone explain it?

Later, I tried rsync -chv, still not working

share|improve this question
1  
Quit using the wrong tool to copy keys. SSH even PROVIDES the proper tool to do that nowadays. If you used ssh-copy-id, this would just plain work. –  Magellan Sep 23 '12 at 2:33

2 Answers 2

The permissions of the ~/.ssh directory should be 700.
The permissions of the ~/.ssh/authorized_keys file should be 600.

This is the quick formula for proper permissions on the server side.

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Another way to move the key is by using the ssh-copy-id command (if available) to copy a key from your system to the remote system. It corrects these permissions.

share|improve this answer

The real answer for this is

Rsync preserves all the permissions and system attributes from my computer, and it won't work on server.

After I executed chown root authorized_keys, it immediately start working.

share|improve this answer
    
That's why you should use SSH commands to copy keys: ssh-copy-id. –  Magellan Sep 23 '12 at 2:13

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.