Beste Tweakers,
Het afgelopen weekend heb ik geheel gespendeerd aan een kerberos - ssh SSO setup. Nu wil ik kerberos als SSO mechanisme inzetten om zorgenloos van de ene naar de andere machine te hoppen.
Uiteindelijk heb ik het voor elkaar gekregen, maar niet op een manier zoals ik het graag zie.
Het SSH-en van de ene naar de andere machine heb ik wel aan de gang gekregen maar dit werkt alleen als ik de sshserver vanaf de binary start, vanuit het init script of xinetd werkt niet. Kinit werkt goed dus de interactie met het KDC gaat goed ook heb ik ervoor gezorgd dat de onderstaande dingen juist geconfigureerd zijn:
- KDC / kadmin config
- DNS (A / reverse records)
- hostnames
- host keys
- principals
- principal login permissies (.k5login) (ksu-en werkt ook)
- ssh-server reverse DNS check staat uit (UseDNS = no)
Op het moment dat krb5 login niet werkt met ssh krijg ik de volgende debug ouput:
Op het moment dat we sshd als binary starten "/usr/sbin/sshd -p99" en het wel werkt, zien we het volgende:
Als we naar de debug output van de server kijken op het moment dat het niet lukt zien we het volgende
Een "permission denied" dus, ik kan alleen niet vinden waar dit vandaan komt,
strace op server process ten tijde van falende login:
Hieruit conludeer ik dat de configuratie wel snor zit maar kan niet bevatten waar de permission denied vandaan komt op het moment dat sshd vanuit het init script of xinetd gestart word. Er verschijnen ook geen records in de ssh server log..
Hints en tips zijn zeer welkom, bij voorbaat dank!
Het afgelopen weekend heb ik geheel gespendeerd aan een kerberos - ssh SSO setup. Nu wil ik kerberos als SSO mechanisme inzetten om zorgenloos van de ene naar de andere machine te hoppen.
Uiteindelijk heb ik het voor elkaar gekregen, maar niet op een manier zoals ik het graag zie.
Het SSH-en van de ene naar de andere machine heb ik wel aan de gang gekregen maar dit werkt alleen als ik de sshserver vanaf de binary start, vanuit het init script of xinetd werkt niet. Kinit werkt goed dus de interactie met het KDC gaat goed ook heb ik ervoor gezorgd dat de onderstaande dingen juist geconfigureerd zijn:
- KDC / kadmin config
- DNS (A / reverse records)
- hostnames
- host keys
- principals
- principal login permissies (.k5login) (ksu-en werkt ook)
- ssh-server reverse DNS check staat uit (UseDNS = no)
Op het moment dat krb5 login niet werkt met ssh krijg ik de volgende debug ouput:
code:
1
2
3
4
5
6
7
8
9
| debug3: authmethod_is_enabled gssapi-with-mic debug1: Next authentication method: gssapi-with-mic debug2: we sent a gssapi-with-mic packet, wait for reply debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password debug2: we sent a gssapi-with-mic packet, wait for reply debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password debug2: we sent a gssapi-with-mic packet, wait for reply debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password debug2: we did not send a packet, disable method |
Op het moment dat we sshd als binary starten "/usr/sbin/sshd -p99" en het wel werkt, zien we het volgende:
code:
1
2
3
4
5
6
7
8
9
| debug3: authmethod_is_enabled gssapi-with-mic debug1: Next authentication method: gssapi-with-mic debug2: we sent a gssapi-with-mic packet, wait for reply debug1: Authentication succeeded (gssapi-with-mic). debug1: channel 0: new [client-session] debug3: ssh_session2_open: channel_new: 0 debug2: channel 0: send open debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. |
Als we naar de debug output van de server kijken op het moment dat het niet lukt zien we het volgende
code:
1
2
3
4
5
6
7
8
9
10
11
| debug1: userauth-request for user root service ssh-connection method gssapi-with-mic debug1: attempt 1 failures 0 debug1: Unspecified GSS failure. Minor code may provide more information Permission denied debug1: userauth-request for user root service ssh-connection method gssapi-with-mic debug1: attempt 2 failures 0 debug1: userauth-request for user root service ssh-connection method gssapi-with-mic debug1: attempt 3 failures 0 debug1: userauth-request for user root service ssh-connection method publickey debug1: attempt 4 failures 0 |
Een "permission denied" dus, ik kan alleen niet vinden waar dit vandaan komt,
strace op server process ten tijde van falende login:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| accept(3, {sa_family=AF_INET, sin_port=htons(3700), sin_addr=inet_addr("<IP ADDR>")}, [16]) = 5 fcntl(5, F_GETFL) = 0x2 (flags O_RDWR) pipe([6, 7]) = 0 socketpair(PF_FILE, SOCK_STREAM, 0, [8, 9]) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fd387dfaa90) = 22982 close(7) = 0 write(8, "\0\0\2o\0", 5) = 5 write(8, "\0\0\2f\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nProtocol"..., 622) = 622 close(8) = 0 close(9) = 0 close(5) = 0 select(7, [3 4 6], NULL, NULL, NULL |
Hieruit conludeer ik dat de configuratie wel snor zit maar kan niet bevatten waar de permission denied vandaan komt op het moment dat sshd vanuit het init script of xinetd gestart word. Er verschijnen ook geen records in de ssh server log..
Hints en tips zijn zeer welkom, bij voorbaat dank!