Help with CA Certificates for user authentication?

wfdawson wfdawson at bellsouth.net
Thu Nov 3 17:50:46 EST 2011


As background, I read:

http://therowes.net/~greg/2011/03/23/ssh-trusted-ca-key/
http://www.ibm.com/developerworks/aix/library/au-sshsecurity/
http://bryanhinton.com/blog/openssh-security
http://www.linuxhowtos.org/manpages/5/sshd_config.htm
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&cc=us&taskId=120&prodSeriesId=4164814&prodTypeId=18964&objectID=c02838205
http://www.gossamer-threads.com/lists/openssh/users/50165


I'm to use SSH CA certificate for user authentication, but not getting quite "there."

I created a signing cert and used it to sign the test user's public key:

ssh-keygen -s /etc/ssh/ca_rsa -I test -n test at 172.31.43.3 -z 3 /home/test/.ssh/id_rsa.pub

On my test server, the sshd_config details:

Port 2022
HostKey /etc/sshtest/ssh_host_key
HostKey /etc/sshtest/ssh_host_rsa_key
HostKey /etc/sshtest/ssh_host_dsa_key
HostKey /etc/sshtest/ssh_host_ecdsa_key
MaxAuthTries 3
AuthorizedKeysFile      /etc/sshtest/authorized_keys
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
UseDNS no
Subsystem       sftp    /home1/test/usr/local/libexec/sftp-server
TrustedUserCAKeys       /etc/sshtest/ssh_cakeys
AuthorizedPrincipalsFile        /etc/sshtest/authorized_principals

The /etc/sshtest/authorized_principals file contains one line:

test at 172.31.43.3

I attempt to connect to the target server from the test client:

$ ssh -vvv -Y -p 2022 -l test 172.31.44.115


There is verbose output, which mostly seems right until (on the client):


debug1: ssh_rsa_verify: signature correct
debug2: input_userauth_pk_ok: fp c9:42:44:91:48:04:45:b2:ee:93:12:3f:e5:89:13:ab
debug3: sign_and_send_pubkey: RSA-CERT c9:42:44:91:48:04:45:b2:ee:93:12:3f:e5:89:13:ab
debug1: read PEM private key begin
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/test/.ssh/id_rsa':

...and, correspondingly on the server:

debug1: KEX done
debug1: userauth-request for user test service ssh-connection method none
debug1: attempt 0 failures 0
debug1: userauth-request for user test service ssh-connection method publickey
debug1: attempt 1 failures 0
debug1: test whether pkalg/pkblob are acceptable
debug1: temporarily_use_uid: 63203/54000 (e=0/0)
debug1: trying public key file /etc/sshtest/authorized_keys
debug1: fd 5 clearing O_NONBLOCK
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 63203/54000 (e=0/0)
debug1: trying public key file /etc/sshtest/authorized_keys
debug1: fd 5 clearing O_NONBLOCK
debug1: restore_uid: 0/0
Failed publickey for test from 172.31.43.3 port 2991 ssh2
debug1: userauth-request for user test service ssh-connection method publickey
debug1: attempt 2 failures 1
debug1: ssh_rsa_verify: signature correct
debug1: test whether pkalg/pkblob are acceptable
debug1: ssh_rsa_verify: signature correct
debug1: temporarily_use_uid: 63203/54000 (e=0/0)
debug1: trying authorized principals file /etc/sshtest/authorized_principals
debug1: fd 5 clearing O_NONBLOCK
debug1: restore_uid: 0/0
Certificate does not contain an authorized principal
debug1: temporarily_use_uid: 63203/54000 (e=0/0)
debug1: trying public key file /etc/sshtest/authorized_keys
debug1: fd 5 clearing O_NONBLOCK
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 63203/54000 (e=0/0)
debug1: trying public key file /etc/sshtest/authorized_keys
debug1: fd 5 clearing O_NONBLOCK
debug1: restore_uid: 0/0
Failed publickey for test from 172.31.43.3 port 2991 ssh2
debug1: userauth-request for user test service ssh-connection method publickey
debug1: attempt 3 failures 2
debug1: ssh_rsa_verify: signature correct
debug1: test whether pkalg/pkblob are acceptable
debug1: ssh_rsa_verify: signature correct
debug1: temporarily_use_uid: 63203/54000 (e=0/0)
debug1: trying authorized principals file /etc/sshtest/authorized_principals
debug1: fd 5 clearing O_NONBLOCK
debug1: restore_uid: 0/0
Accepted certificate ID "test" signed by RSA CA e5:04:98:2c:95:d3:b2:21:01:f3:5c:16:63:99:67:db via /etc/sshtest/ssh_cakeys
Postponed publickey for test from 172.31.43.3 port 2991 ssh2

At this point, I have to enter the test user's passphrase.  This is not what I expect... I was rather hoping to avoid entering credentials...


Any suggestions?


More information about the openssh-unix-dev mailing list