SSH ohne Passwörter nutzen (Ubuntu)
Wenn Ihr SSH-Verbindungen ohne Passworteingabe herstellen wollt, könnt Ihr SSH-Schlüssel nutzen. Dabei wird ein Schlüssel-Paar erzeugt: Ein privater, geheimer Schlüssel, der auf dem Client-Rechner verbleibt und ein öffentlicher Schlüssel auf dem SSH-Server, der damit den Client authentifizieren kann. Das Ganze ist ziemlich simpel und echt bequem, wenn man häufig auf entfernte Rechner zugreifen muss.
1. Schlüsselpaar erzeugen
Erstellt zunächst die Schlüssel über den Befehl
ssh-keygen
Sofern Ihr mehrere Schlüssel auf dem Rechner einsetzen wollt, vergebt im nächsten Schritt einen Namen samt Pfad für den Schlüssel, also beispielsweise
/home/peter/.ssh/id_rsa_meinschluessel
Dann vergebt Ihr noch ein Passwort für den Schlüssel. Daraufhin werden in dem Standardverzeichnis die beiden Dateien id_rsa_meinschluessel und id_rsa_meinschluessel.pub angelegt. Die Endung .pub zeigt es schon: Das ist der öffentliche Schlüssel - die andere Datei ist vertraulich!
Anschließend müsst Ihr dem SSH-Agenten noch die eben erstellte Identität - nichts weiter ist so ein Schlüssel-Paar - mitteilen, damit er sie zum Authentifizieren nutzen kann:
ssh-add /home/peter/.ssh/id_rsa_meinschluessel
Nun geht es mit dem SSH-Server weiter.
2. Schlüssel auf Server eintragen
Dem SSH-Server muss nun dieser öffentliche Schlüssel übergeben werden, damit auch dieser an der Authentifizierung teilnehmen kann. Dafür kopiert Ihr den Inhalt der erstellten .pub-Datei vom Client-Rechner in die Datei /home/peter/.ssh/authorized_keys auf dem Server-Rechner. In der Regel werdert Ihr sie zunächst erstellen müssen. Ihr könnt das Ganze direkt vom Client aus erledigen:
cat /home/peter/.ssh/id_rsa_meinschluessel.pub | ssh peter@192.168.178.150 'cat >> ~/.ssh/authorized_keys
Natürlich könnt Ihr den Schlüssel auch auf beliebige andere Wege in die authorized_keys-Datei kopieren.
Ab sofort klappt der Befehl
ssh peter@192.168.178.150
ohne weitere Passwortabfrage.
Ihr könnt Euch das Prozedere einfach wie an einer Pforte vorstellen, die nur bestimmte Mitarbeiter passieren dürfen:
- Mit Passwort: Ihr müsst eine PIN eingeben, um die Tür zu passieren.
- Ohne Passwort: Der Pförtner hat eine Liste mit Mitarbeitern - die authorized_keys-Datei. Ihr wiederum habt Euren Mitarbeiterausweis, um Eure Identität nachzuweisen - den privaten Schlüssel. Der Pförtner lässt Euch ohne PIN passieren.
Und wie in der IT, greift auch hier, mit etwas Verzögerung, die Automatisierung: Der Pförtner erkennt Euch nach ein paar Tagen und wird Euch auch ohne Vorzeigen des Ausweises durch lassen.
Das gleiche Schlüsselsystem kommt übrigens auch bei Email-Verschlüsselung zum Einsatz.
Hallo Mirco, nach Deiner super Anleitung habe ich mein Glück versucht. Meine Anwendung von einem Raspi1 zu einem zweiten Raspi2 (beide ubunto 20.04) funktioniert SSH ohne Passwort korrekt. Die Verbindung von Raspi 1 zu einem Linux-Desktop PC (nur Ubuntu installiert) funktioniert SSH nur mit Passwort obwohl der Key in „/home/linux/.ssh/authorized_keys“ (Linux-PC) identisch zu „/opt/fhem/.ssh/id_rsa.pub“ in Raspi 1, entspricht ? Wo mache ich hier einen Fehler ? Würde mich über einen Tipp sehr freuen. LG Peter aus dem Nordschwarzwald