Passwortloser SSH-Zugang auf Server

Insbesondere bei automatisierten Skripten, die SSH-Verbindungen zu externen Systemen aufbauen, ist die Abfrage eines Passworts innerhalb des Skripts unerwünscht oder führt dazu, dass das Skript blockiert wird.

Es ist zwar möglich, solche Passworteingaben mit dem Tool expect zu simulieren, dies ist aber alles andere als sicher. Der beste Weg ist die Authentifizierung über RSA-Schlüssel, die im Zielsystem als öffentlicher Schlüssel eingegeben werden müssen, um einen passwortfreien Zugang zu ermöglichen.

Wenn Sie viele Systeme administrieren und vergessen haben, einen öffentlichen Schlüssel in ein Zielsystem zu importieren, haben Sie das Problem, dass das Skript erneut blockiert wird, weil eine Passwortabfrage als Failover gestartet wird.

Um dies zu verhindern, wird einfach der Parameter -o BatchMode=yes an den SSH-Client übergeben. Es wird allgemein empfohlen, diesen Parameter zu verwenden, sobald ssh in einem Skript auftaucht. In der Regel wird er jedoch nicht beachtet und hindert so manches System daran, automatisierte Prozesse auszuführen.

Eine typische Befehlszeile sieht wie folgt aus:

ssh -o BatchMode=yes www.my-sample-hostname.com

Wenn Sie SSH indirekt über Rsync verwenden, kann dieser Parameter wie folgt verwendet werden:

rsync -av -e "ssh -o BatchMode=yes" www.mysample.com:/src1 /dst1

Hinterlasse ein Kommentar