Getting public-key auth working in Solaris 10
Posted Thu, 28 Dec 2006
Once upon a time, there was a Solaris 10 box where I wasn't able to use ssh
keys to login.
Thankfully, that time has now passed. The problem was because PAM was denying access with public keys.
Running sshd in debug mode (-ddd) I would see this:
Found matching DSA key: 80:aa:32:03:ef:51:9c:7b:0f:1d:ac:37:17:d5:fd:2b debug1: restore_uid: 0/0 debug1: ssh_dss_verify: signature correct debug2: Starting PAM service sshd-pubkey for method publickey debug3: Trying to reverse map address 69.181.132.53. debug2: userauth_pubkey: authenticated 0 pkalg ssh-dss Failed publickey for psionic from 69.181.132.53 port 55957 ssh2Clearly indicated here, is the fact that it accepted my ssh-dss key, but I failed for some other reason. Listed here, is:
Starting PAM service
sshd-pubkey for method publickey. Solaris 10's manpage for sshd shows
that it uses different PAM service names for each type of authentication.
The solution involved adding a simple service entry in /etc/pam.conf:
sshd-pubkey auth required pam_unix_cred.so.1It works now. This takes effect immediately as the pam config is invoked any time sshd uses pam, so you don't have to restart sshd.
[oracle@dbracs2 ~]$ grep unix_cred /etc/pam.conf
login auth required pam_unix_cred.so.1
rlogin auth required pam_unix_cred.so.1
krlogin auth required pam_unix_cred.so.1
rsh auth required pam_unix_cred.so.1
krsh auth required pam_unix_cred.so.1
ktelnet auth required pam_unix_cred.so.1
ppp auth required pam_unix_cred.so.1
other auth required pam_unix_cred.so.1
My problem (with your exact symptoms above) was due to having created the UNIX user without setting a password for it. Once I initialized its password with the 'passwd' command, the apparently-fine ssh setup finally began to work.