SSH/SCP ohne Passwort per Key

Für diverse Scripte oder Applikationen muss man per ssh ohne Passwort von einem Server auf den anderen zugreifen können.

Hier noch einmal kurz das vorgehen zur Generierung und Austausch der Schlüssel.

1. Login in den „Client“ mit dem User, welcher auf den Server zugreifen soll.
2. Schlüssel generieren.

user@client: ssh-keygen -t rsa

Es werden keine Kennwörter vergeben.

3. Ordner „.ssh“ im Userverzeichnis auf dem Server erstellen wenn nicht schon vorhanden.

user@client: ssh serveruser@server mkdir -p .ssh

4. Öffentlicher Schlüssel vom client in Datei auf dem Server hinterlegen.

user@client: cat .ssh/id_rsa.pub | ssh serveruser@server 'cat >> .ssh/authorized_keys'

Jetzt sollte man ohne Passwortabfrage auf den Server kommen.

user@client: ssh serveruser@server

Soll user@client noch auf weitere User/Server-Kombinationen Zugriff haben sind die Schritte 3 und 4 jeweils zu wiederholen.

Dateirechte
Besonders auf folgende Dateirechte ist zu achten. Sind diese falsch fällt SSH auf die Passwort-Authentifizierung zurück. Log-Dateien und SSH mit Parameter -vvv liefern leider oft keine aussagekräftige Fehlermeldung.

.ssh-Order: 700
.ssh/authorized_keys-Datei: 640
home-Verzeichnis von serveruser@server: nur der User serveruser@server darf Rechte haben. Gruppen und Andere dürfen keine Rechte haben. Dies gilt auch wenn serveruser@server das einzige Gruppenmitglied ist.

Noch ein Wort zur Sicherheit: Sollte ein Dritter auf user@client Zugriff bekommen, hat er auch Zugriff auf alle „serveruser@server“. Man sollte entsprechend für einzelne Aufgaben extra Benutzer auf den Servern anlegen und die Rechte dieser soweit wie möglich einschränken.