Linux im GriffNetzwerk & IPSicherheit

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.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Ein Kommentar

  1. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"