Använder du remoteservarna ofta? Trött på att behöva skriva in ditt lösenord varje gång? I så fall; konfigurera ditt system såhär:

sudo cp /etc/krb5.conf{,.backup}
sudo vim /etc/krb5.conf

Och ersätt med


# $Id: krb5.conf,v 1.5 2008/05/19 09:10:15 biorn Exp $
# Detta är ett standarförslag för /etc/krb5.conf
# De som inte känner sig riktigt bekväma med att använda DNS för
# att hitta KDC:erna och de som kör nån kerberos som inte hanterar
# DNS kan avkommentera realm-definitionen och kommentera raden
# dns_lookup_kdc = true
# De som erbjuder tjänster av någon slags dignitet bör använda en
# serviceprincipal för tjänsten. Kontakta cdks-drift@ita för vidare info.
#
# Egenheter:
# - tru64 5.1 gillar inte kommentarer ('#') i krb5.conf

[libdefaults]
        default_realm = CHALMERS.SE
        clockskew = 300
        v4_instance_resolve = false
        dns_lookup_kdc = true

[realms]
#        CHALMERS.SE = {
#                kdc = kdc1.ita.chalmers.se:88
#                kdc = kdc2.ita.chalmers.se:88
#                kdc = kdc3.ita.chalmers.se:88
#        }

[domain_realm]
        .chalmers.se = CHALMERS.SE
        chalmers.se = CHALMERS.SE
[logging]
        default = SYSLOG:INFO:USER

Efter detta kan du använda kinit för att få en ticket ifrån kerberos, denna tillåter dig sedan att i ett antal timmar utan lösenord logga in på remoteservrarna. För att få ssh att använda sig av din ticket så behövs två stycken inställningar GSSAPIAuthentication och GSSAPIDelegateCredentials. Dessa kan du sätta som flaggor direkt till ssh eller i din ~/.ssh/config

ssh -o GSSAPIAuthentication=yes -o 
SSAPIDelegateCredentials=yes <cid>@remote1.student.chalmers.se

Eller, om man vill göra det enkelt för sig, vim ~/.ssh/config

Host chalmers
	HostName remote1.student.chalmers.se
	GSSAPIAuthentication yes
	GSSAPIDelegateCredentials yes
	User <INSERT_CID>

Efter detta kan du köra ssh chalmers för att ansluta. Eller om ni använder en git-server på chalmers git clone chalmers:/chalmers/groups/<project>

klist listar dina tickets.

kdestroy förstör dina tickets.

En liten wrapper till ssh som underlättare det hela ännu mer:

#!/bin/sh

klist -t                 # Testar om det finns någon ticket;
                         # exit:ar med 0 om det finns.
                         # På vissa system använd: klist -s

if [ $? -eq 0 ]; then    # Om senaste exit code är 0, så finns
                         # en ticket och vi behöver inte köra kinit.
        ssh $1
else
        kinit && ssh $1
fi

Låt ovanstående skript heta kssh t.ex. och använd sedan det istället för ssh.

Kategorier: Systemet