Tipp: SSH-Schlüsselpaar erstellen und nutzen

SSH ist per se schon ziemlich sicher, die Zuverlässigkeit steht und fällt jedoch mit dem eigenen Passwort. Wesentlich schwerer zu knacken als ein einfaches Kennwort ist ein Schlüsselpaar, siehe dazu auch den Schwerpunkt unserer letzten Ausgabe [3]. Ein solches Paar besteht aus einem privaten und einem öffentlichen Schlüssel. Ersterer befindet sich auf dem eigenen Rechner in der Datei ~/.ssh/id_rsa (wenn Sie die empfohlene RSA-Verschlüsselung verwenden), Letzterer auf dem Zielsystem in der Datei ~/.ssh/authorized_keys. Den privaten Schlüssel sollten Sie zusätzlich mit einer Passphrase schützen. Die folgende Schritt-für-Schritt-Anleitung zeigt, wie Sie ein solches Schlüsselpaar erstellen:

  1. Beim Anlegen hilft Ihnen das Kommandozeilentool ssh-keygen, das unter Ubuntu Bestandteil des Pakets openssh-client ist und unter OpenSuse zum Paket openssh gehört. Am Prompt tippen Sie den folgenden Befehl, um ein RSA-Schlüsselpaar zu erstellen:

    ssh-keygen -t rsa
  2. Die nächste Frage, ob Sie den privaten Schlüssel in der Datei ~/.ssh/id_rsa speichern möchten, bestätigen Sie mit der Eingabetaste:

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/↩
    huhn/.ssh/id_rsa):
  3. Das Programm fordert Sie nun auf, ein Kennwort einzugeben und dieses zu wiederholen. Beide Male tippen Sie ohne visuelles Feedback und drücken danach [Eingabe]:

    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
  4. Abschließend sehen Sie verschiedene Meldungen, dass alles geklappt hat (Abbildung 3). Werfen Sie einen Blick ins Verzeichnis ~/.ssh, so sehen Sie das neue Schlüsselpaar, die beiden Dateien id_rsa und id_rsa.pub.

    Abbildung 3: Mit dem Programm "ssh-keygen" erstellen Sie ein SSH-Schlüsselpaar auf der Kommandozeile.
  5. Den öffentlichen Schlüssel, also die Datei mit der Endung .pub, übertragen Sie nun auf den entfernten Rechner. Das können Sie mit scp ("secure copy") erledigen und den Schlüssel von Hand in die Datei ~/.ssh/authorized_keys einfügen, komfortabler geht's aber mit dem Skript ssh-copy-id. Ersetzen Sie im folgenden Befehl die Benutzer- und Rechnernamen durch Ihre eigenen:

    ssh-copy-id huhn@lion
  6. Auf Nachfrage geben Sie das Kennwort des Zielsystems ein. Beachten Sie, dass Sie hinter der Option -i auch einen anderen Schlüssel definieren können, wenn dieser vom Standard (id_rsa.pub) abweicht. Hat alles geklappt, schlägt das Skript vor, dass Sie sich nun auf der entfernten Maschine einloggen und überprüfen, dass der öffentliche Schlüssel (und nur dieser) in der Datei ~/.ssh/authorized_keys angekommen ist.

Bei der nächsten Anmeldung sollte das Zielsystem nicht mehr nach Ihrem Benutzerkennwort, sondern nach der SSH-Passphrase fragen.

Um eine Anmeldung auf einem entfernten Rechner ganz ohne Interaktion und Eintippen eines Kennworts zu ermöglichen, können Sie die SSH-Passphrase in die eigene Schlüsselbundverwaltung aufnehmen. Unter Gnome steht dazu das Programm Seahorse (Abbildung 4), unter KDE die KDE-Brieftasche (KWallet) zur Verfügung. Beide Anwendungen bieten von sich aus an, den Schlüssel beim ersten Einsatz aufzunehmen. Wenn Sie (wie in der Anleitung gezeigt) ssh-copy-id einsetzen, um den öffentlichen Schlüssel zu übertragen, ist das bereits dann der Fall.

Abbildung 4: Die Schlüsselbundverwaltungen der Desktopumgebungen (hier Seahorse unter Gnome) speichern SSH-Schlüssel und die Passphrase, so dass Sie sich ohne Interaktion auf entfernten Rechnern anmelden können.

Tipp: Lokale und entfernte Datei vergleichen

Mit dem Kommando diff vergleichen Sie zwei Textdateien auf der Konsole miteinander [5]. Dabei geben Sie grundsätzlich hinter dem Befehl diff die beiden Dateien an:

diff datei1 datei2

Haben Sie wie im vorigen Tipp gezeigt ein SSH-Schlüsselpaar erstellt und verwalten dieses über eine digitale Brieftasche wie Gnome oder KWallet, dann können Sie mit einem kleinen Trick auch zwei Dateien auf unterschiedlichen Rechnern gegenüberstellen. Dazu teilen Sie diff über die Shell-Konstruktion <(...) mit, dass es die Ausgabe eines ssh-Aufrufs als Datei interpretieren soll. ssh rufen Sie dabei mit einem cat-Kommando auf, das eine Datei von der entfernten Maschine ausgibt und die Verbindung direkt danach trennt. Das zweite Argument ist einfach die lokale Datei, im folgenden Beispiel vergleicht diff die lokale und die entfernte Version der Datei /etc/resolv.conf:

diff <(ssh lion cat /etc/resolv.conf) /etc/resolv.conf

Eine Passworteingabe für SSH ist ja aufgrund des Schlüsselpaars und der gespeicherten Passphrase nicht erforderlich. Praktisch: Setzen Sie zuätzlich die diff-Option -y ein, erscheint die Ausgabe in zwei Spalten nebeneinander – das ist übersichtlich und prima zum Vergleichen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Zu Befehl: ssh, scp
    Die klassischen Unix-Programme Telnet und FTP erlauben Verbindungen und Datei-Transfers zu anderen Rechnern im Netz, sind aber unsicher: Alle Daten werden unverschlüsselt übertragen. Deswegen verwenden man heute die SSH-Tools (Secure Shell), die das Gleiche ermöglichen, dabei aber durch Verschlüsselung für Sicherheit sorgen.
  • Zu Befehl
    Jedesmal, wenn Sie sich über telnet auf einem Rechner anmelden oder per ftp Daten von einem Computer zu einem anderen übertragen, wird das Passwort – wie alle anderen Daten auch – im Klartext gesendet. Damit kann jeder, der den Netzverkehr "abhört", Informationen und damit auch Zugang zum benutzten Account bekommen. Mit der Secure Shell (ssh) und den dazugehörenden Kommandos ssh für das Login und scp zur Dateiübertragung sind sie auf der sicheren Seite: Hier kommen verschlüsselnde Alternativen auf der Kommandozeile.
  • Know-how für die Kommandozeile
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt als in grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
  • Shell-Tipps
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt, als mit grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
  • Know-how für die Kommandozeile
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller als in grafischen Programmen bewältigen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
Kommentare

Infos zur Publikation

title_2014_03

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 0 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...