• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

passwortfreies Einloggen mit ssh

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Der Anfang ist bereits von hilarious wunderbar an dieser Stelle erklärt worden.

Dort meint er aber auch:
Wenn Du Deinem Schlüssel eine »Passphrase« verpasst hast, wirst Du allerdings diese jetzt jedesmal eingeben müssen (auch dafür gibt es Automatismen, aber das würde zu weit führen).

Da ich denke, daß man auf jeden Fall eine Passphrase verwenden sollte, und ich das auch schon seit Jahr & Tag so mache, mnöchte ich hier kurz meine Lösung (die ich auch nur irgendwann mal im Netz gefunden habe) vorstellen.

Dazu wird in die Startdatei des Terminals (.profile bei der bash) folgendes mit aufgenommen:
Code:
#!/bin/sh

SSH_AGENT='/usr/bin/ssh-agent -s'
SSH_ADD=/usr/bin/ssh-add
KILL=/bin/kill
SSH_AGENT_INFO=~/.ssh-agent-info
SSH_DIR=~/.ssh
CHMOD=/bin/chmod
TOUCH=/usr/bin/touch
#KEYS='identity id_dsa id_rsa'

ssh_prime () {
	$TOUCH $SSH_AGENT_INFO
	$CHMOD 600 $SSH_AGENT_INFO
	$SSH_AGENT > $SSH_AGENT_INFO
	. $SSH_AGENT_INFO
	if [ -n "$KEYS" ]
	then
		for i in $KEYS
		do
			$SSH_ADD $SSH_DIR/$i
		done
	else
		$SSH_ADD
	fi
}

if test -f $SSH_AGENT_INFO
then
	. $SSH_AGENT_INFO >/dev/null
	if [ -n "$SSH_AGENT_PID" ]
	then
		if ! ( $KILL -INFO "$SSH_AGENT_PID" 2> /dev/null ) || ! ( [ -S $SSH_AUTH_SOCK ] || [ -p $SSH_AUTH_SOCK ] )
		then
			echo leftover $SSH_AGENT_INFO
			ssh_prime
		fi
	else
		echo wrong $SSH_AGENT_INFO
		ssh_prime
	fi
else
	echo No $SSH_AGENT_INFO
	ssh_prime
fi

. $SSH_AGENT_INFO  >/dev/null

Wenn man nun das erstemal nach dem Einloggen ein Terminal startet, wird man nach der Passphrase gefragt. Von da ab, während der gesamten "Sitzung" nicht mehr. Passwortfreier Zugang ist dann ab sofort möglich.

Das ganze funktioniert vereinfacht gesagt dadurch, daß der ssh-agent sich die benötigten Daten merkt und dem ssh zur Verfügung stellt.
 
  • Like
Reaktionen: Hilarious

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Sehr schön zusammengestellt und gut lesbar! So mutt dat sein... :D
Tipp: Oben kann man bewerten, ob man den Beitrag gut findet, und man kann skeeve positives Karma geben. Aber das weiß ja jeder, oder? :)