Passordløs SSH-oppkobling

Fra IThjelp

Det finnes mange grunner til å gjøre passordløse oppkoblinger mot ssh-tjenere. Skripting, klyngeregning og sikkerhet er eksempler. Det antas i denne sammenheng at ssh-tjenesten kjører under Linux, men dette er også mulig mot andre OS. Klientsiden kan være både Linux og Windows og vi vil her gi noen eksempler på slik bruk.

På UiB finnes det to metoder for passordløs oppkobling mot ssh-tjenere; Kerberos og SSH-nøkler. Vi vil forklare dem hver for seg.

SSH med Kerberosautentisering

Alle UiBs Linuxklienter er satt opp til å fungere med kerberosautentisering, men dette krever også innstillinger på klientsiden som ikke alltid kan tilfredsstilles. Av denne grunn vil dette kun fungere fra Linux eller fra selvdriftet maskin, det vil også kun fungere når klienten står på UiBs 129.177/16-nett. Man kan også endre oppsettet på serversiden per bruker (i filen $HOME/.ssh/config), men de globale reglene er definert i /etc/ssh/sshd_config og /etc/ssh/ssh_config. Her er et utdrag fra disse

# Utdrag fra /etc/ssh/sshd_config
# Kerberos options
KerberosAuthentication yes
#KerberosOrLocalPasswd yes
KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
# Utdrag fra /etc/ssh/ssh_config
# Rekkefolgen er vesentlig
# First FQDNs at UiB
Host 129.177.* *.uib.no
  GSSAPIAuthentication yes
  GSSAPIDelegateCredentials yes
  GSSAPIKeyExchange yes
  GSSAPITrustDNS yes
  SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES 
  SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT 
  SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
  SendEnv XMODIFIERS
  ForwardX11Trusted yes

# Then FQDNs not at UiB
Host *.*
  GSSAPIAuthentication yes
# If this option is set to yes then remote X11 clients will have full access
# to the original X11 display. As virtually no X11 client supports the untrusted
# mode correctly we set this to yes.
  ForwardX11Trusted yes
# Send locale-related environment variables
  SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES 
  SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT 
  SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
  SendEnv XMODIFIERS

# And at last short names (non-FQDNs)
Host *
  GSSAPIAuthentication yes
  GSSAPIDelegateCredentials yes
  GSSAPIKeyExchange yes
  GSSAPITrustDNS yes 
  SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES 
  SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT 
  SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
  SendEnv XMODIFIERS
  ForwardX11Trusted yes

Man kan lese mer om disse filene i deres manualsider: man ssh_config og man sshd_config. Man overstyrer /etc/ssh_config i $HOME/.ssh/config ved at rekkefølgen er relevant og brukerens fil leses først.

For at kerberosautentisering skal virke må man:

  1. Ha støtte for dette på server og klient skrudd på
  2. Ha en gyldig kerberosticket
  3. Være på UiBs 129.177/16-nett.

SSH med nøkkelautentisering

tba