SSH Authentication Problem
Hi everyone,
I am relatively new to linux but am learning quickly, here's a quick synopsis of my problem I'm trying to connect to a remote host using ssh without having to enter a password. I'm trying to connect using the account 'prdusr' on the remote host and have done the following: 1) Added the remote hosts ssh_host_rsa_key.pub into known_hosts on the client 2) Generated a public / private key pair using the command ssh-keygen -t dsa - i've tried this with and without a passphrase 3) The above command generates the file id_dsa and id_dsa.pub, so I copy it to the remote host using scp and execute cat id_dsa.pub >> .ssh/authorized_keys under the users home folder I've made sure that under etc/ssh/sshd_config RSAAuthentication is yes, and I have actually left this commented out as it is the default value of the system. I've also copied id_dsa and id_dsa.pub to identity and identity.pub as a precaution to try and make sure that the public key is being read correctly. Anyways, after I execute ssh -vvv prdusr@remotehost.com I still get prompted for a password! Here's the output: [prdusr@client ssh]$ ssh -vvv prdusr@remotehost.com OpenSSH_3.6.1p2, SSH protocols 1.5/2.0, OpenSSL 0x0090701f debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Rhosts Authentication disabled, originating port will not be trusted. debug2: ssh_connect: needpriv 0 debug1: Connecting to remotehost [x.x.x.x] port 22. debug1: Connection established. debug3: Not a RSA1 key file /home/prdusr/.ssh/identity. debug2: key_type_from_name: unknown key type '-----BEGIN' debug3: key_read: missing keytype debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug2: key_type_from_name: unknown key type '-----END' debug3: key_read: missing keytype debug1: identity file /home/prdusr/.ssh/identity type 2 debug1: identity file /home/prdusr/.ssh/id_rsa type -1 debug3: Not a RSA1 key file /home/prdusr/.ssh/id_dsa. debug2: key_type_from_name: unknown key type '-----BEGIN' debug3: key_read: missing keytype debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug3: key_read: missing whitespace debug2: key_type_from_name: unknown key type '-----END' debug3: key_read: missing keytype debug1: identity file /home/prdusr/.ssh/id_dsa type 2 debug1: Remote protocol version 1.99, remote software version OpenSSH_3.6.1p2 debug1: match: OpenSSH_3.6.1p2 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_3.6.1p2 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,zlib debug2: kex_parse_kexinit: none,zlib debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,zlib debug2: kex_parse_kexinit: none,zlib debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: mac_init: found hmac-md5 debug1: kex: server->client aes128-cbc hmac-md5 none debug2: mac_init: found hmac-md5 debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug2: dh_gen_key: priv key bits set: 124/256 debug2: bits set: 1550/3191 debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug3: check_host_in_hostfile: filename /home/prdusr/.ssh/known_hosts debug3: check_host_in_hostfile: match line 1 debug3: check_host_in_hostfile: filename /home/prdusr/.ssh/known_hosts debug3: check_host_in_hostfile: match line 1 debug1: Host 'remotehost.com' is known and matches the RSA host key. debug1: Found key in /home/prdusr/.ssh/known_hosts:1 debug2: bits set: 1584/3191 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password,keyboard-interactive debug3: start over, passed a different list publickey,password,keyboard-interactive debug3: preferred publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/prdusr/.ssh/identity debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey,password,keyboard-interactive debug1: Trying private key: /home/prdusr/.ssh/id_rsa debug3: no such identity: /home/prdusr/.ssh/id_rsa debug1: Offering public key: /home/prdusr/.ssh/id_dsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey,password,keyboard-interactive debug2: we did not send a packet, disable method debug3: authmethod_lookup keyboard-interactive debug3: remaining preferred: password debug3: authmethod_is_enabled keyboard-interactive debug1: Next authentication method: keyboard-interactive debug2: userauth_kbdint debug2: we sent a keyboard-interactive packet, wait for reply debug1: Authentications that can continue: publickey,password,keyboard-interactive debug3: userauth_kbdint: disable: no info_req_seen debug2: we did not send a packet, disable method debug3: authmethod_lookup password debug3: remaining preferred: debug3: authmethod_is_enabled password debug1: Next authentication method: password prdusr@remotehost.com's password: From everything that I've read, this should be working, and not asking me for a password! Can anybody help? I would sincerely appreciate some guidance here. Kind regards, Mark |
fix these two things, check protections
Two comments:
#1 You must not use a passphrase when you generate your key pair if you want to have passwordless access. #2 The formats of the identity and id_dsa key files are incompatible (as they should be; OpenSSH knows about three kinds of keys (rsa, dsa, and rsa1) and all are distinctly different therefore should have different file names and different formats). Your key_read errors are being generated by the bogus format you've inserted into the identity file by copying id_dsa files there. Fix those two bugs and try again. If it still doesn't work, post the output like you did this time (good post, by the way!) and also check the protections on your key files - OpenSSH won't use improperly secured key files. --Charlie |
Hi Charlie, thank you for the response.
Reading your post, this is what I followed up with: 1) I removed identity, identity.pub and regenerated id_dsa and id_dsa.pub, and copied over the contents of id_dsa.pub into a new .ssh/authorized_keys file on the remote server under prdusr's home directory. 2) I checked permissions on my keys, I believed everything was correct: (on the client /home/prdusr/): drwxr--r-- 2 prdusr prdusr 4096 Dec 2 16:15 .ssh (contents of .ssh): -rw------- 1 prdusr prdusr 668 Dec 2 16:15 id_dsa -rw-r--r-- 1 prdusr prdusr 633 Dec 2 16:15 id_dsa.pub -rw-r--r-- 1 prdusr prdusr 737 Dec 2 15:58 known_hosts (on the remote host /home/prdusr/): -rw-r--r-- 1 prdusr prdusr 633 Dec 2 14:53 authorized_keys and then I noticed that the .ssh folder didn't have the execute permission on the folder doing a chmod from 644 to 744 on the .ssh folder on the remote host FIXED THE PROBLEM! Thank you very very much... Turned out to be a simple solution but finding it was like finding a needle in a haystack. Kind regards, Mark |
Glad to help.
Incidentally, the one place you don't have to worry about key type is in the authorized_keys file. Any of the three types of public keys can be added there and OpenSSH will figure out what to do.
If you want interoperability with the non-free SSH (which I recommend, incidentally, for Windoze boxes) you have to convert the keys into OpenSSH format before you can use 'em. There's a converter shipped with OpenSSH. --C |
All times are GMT -5. The time now is 09:56 AM. |