Der eigene Schlüssel

Wollen Sie nicht nur gelegentlich sondern häufig Dateien zwischen Rechnern übertragen oder sich auf einem anderen System anmelden, so kann die ständige Passwortabfrage des Zielsystems störend sein; auch eine Automatisierung von Standardaufgaben über Skripte scheitert am interaktiven Element der Passworteingabe. Hier bietet SSH die Möglichkeit, einen Schlüssel auf dem Zielsystem zu hinterlegen, über den Ihre Berechtigung zum Login nachgeprüft werden kann, ohne ein Passwort zu verlangen. Das Programm ssh-keygen erzeugt einen solchen Schlüssel (englisch: "key generation").

Für Protokollversion 1.X sind dies RSA-Schlüssel, Version 2.X verwendet stattdessen DSA-Verschlüsselung. Welcher Schlüssel erzeugt werden soll, verraten Sie dem Programm mit der Option -t. Listing 1 zeigt, wie Sie einen DSA-Schlüssel generieren.

Listing 1

DSA-Schlüssel anlegen

huhn@asteroid:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/huhn/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/huhn/.ssh/id_dsa.
Your public key has been saved in /home/huhn/.ssh/id_dsa.pub.
The key fingerprint is:
72:d5:ad:76:cf:e4:89:a0:8e:f9:57:66:87:55:cd:cc huhn@asteroid

Die "Passphrase", nach der hier zwei mal gefragt wird, hat nichts mit dem Passwort auf dem Zielsystem oder Ihrem lokalen Passwort zu tun – vielmehr können Sie mit Hilfe der Passphrase Ihr Schlüsselpaar (bestehend aus einem öffentlichen und einem geheimen Schlüssel, dazu gleich mehr) schützen. Ein solcher Schutz ist z. B. beim Einsatz von SSH auf einem Notebook sinnvoll, denn sollte das Notebook gestohlen werden und sich auf diesem ein ungeschützter SSH-Key befinden, so kann dieser zum Einbruch in ein anderes System verwendet werden.

In Ihrem Home-Verzeichnis befindet sich nun ein neues Unterverzeichnis .ssh (mit führendem Punkt), das u. a. das bereits erwähnte Schlüsselpaar, bestehend aus id_dsa und id_dsa.pub enthält. Die erste Datei ist Ihr geheimer, privater Schlüssel (eine binäre Datei, die sich nicht im Editor lesen lässt); die zweite Datei mit der Endung .pub ist der öffentliche (public) Schlüssel. Dieser kann nun auf einen Zielrechner kopiert werden, um künftig eine automatische Anmeldung auf diesem System zu ermöglichen. Das geht folgendermaßen:

  • Kopieren Sie (z. B. mit scp) die Datei ~/.ssh/id_dsa.pub ins Home-Verzeichnis des Zielrechners: scp ~/.ssh/id_dsa.pub [UserID@]RemoteHost:
  • Loggen Sie sich dann auf dem Zielrechner ein. Prüfen Sie, ob dort bereits ein Unterverzeichnis .ssh existiert; wenn nicht, legen Sie es an: mkdir ~/.ssh
  • Wechseln Sie (auf dem Zielrechner) in das Verzeichnis (cd ~/.ssh) und hängen Sie die vom ersten Rechner kopierte Datei an die (eventuell bereits vorhandene) Datei authorized_keys an; das geht mit dem Befehl cat ~/id_dsa.pub >> authorized_keys (Sollte die Datei noch nicht vorhanden sein, wird sie von diesem Aufruf erzeugt.)
  • Löschen Sie schließlich die nun nicht weiter benötigte Datei id_dsa.pub im Hauptverzeichnis (nur da!): rm ~/id_dsa.pub

Auf dem Zielrechner müssen die Rechte des .ssh-Verzeichnisses korrekt gesetzt sein: Das Verzeichnis selbst muss mit den Rechten 700 ausgestattet sein (also lesbar, schreibbar, betretbar durch den Besitzer und niemand sonst). Darüber hinaus dürfen für das Home-Verzeichnis keine Schreibrechte für Gruppe (g) und Andere (o) gesetzt sein; führen Sie im Zweifelsfall die Befehle

huhn@asteroid:~$ chmod go-w ~
huhn@asteroid:~$ chmod 700 ~/.ssh

aus. Um das Abfragen der für den Schlüssel gesetzten Passphrase zu automatisieren, gibt es die Programm ssh-agent und ssh-add. Der SSH-Agent merkt sich einmal (über ssh-add) eingegebene Passphrases, so dass bei Aufrufen von ssh keine Fragen mehr gestellt werden. Das ist vor allem dann nützlich, wenn Sie häufig die SSH-Verbindung abbrechen und wieder neu aufbauen.

In einem ersten Schritt muss der SSH-Agent gestartet werden. Er gibt als Rückgabewert eine Reihe von Befehlszeilen, die dann kopiert und ebenfalls ausgeführt werden müssen: Damit werden einige Umgebungsvariablen gesetzt.

huhn@asteroid:~$ ssh-agent 
SSH_AUTH_SOCK=/tmp/ssh-XXO0M4II/agent.32162; export SSH_AUTH_SOCK;
SSH_AGENT_PID=32163; export SSH_AGENT_PID;
echo Agent pid 32163;

Diese Prozedur, ssh-agent die Befehlszeilen ausgeben zu lassen, dient hier aber nur dem Verständnis; im praktischen Einsatz können Sie die Ausgabe von ssh-agent einfach durch eval auswerten lassen, so dass sich die Vorgehensweise auf ein einfaches

eval `ssh-agent`

verkürzt. Erst wenn der Agent läuft, kann auch ssh-add verwendet werden.

huhn@asteroid:~$ ssh-add -l
The agent has no identities.

Beim Aufruf ohne Parameter sucht es im Verzeichnis ~/.ssh nach privaten Schlüsseln und fordert Sie für jeden gefundenen auf, die zugehörige Passphrase einzugeben.

huhn@asteroid:~$ ssh-add 
Enter passphrase for /home/huhn/.ssh/id_dsa: @L: *@L: *@L: *@L: *@L: *
Identity added: /home/huhn/.ssh/id_dsa (/home/huhn/.ssh/id_dsa)

Danach kennt das Programm die Passphrase:

huhn@asteroid:~$ ssh-add -l
1024 f3:c9:b6:5d:23:3a:9d:61:50:19:63:3c:e8:22:7c:86 /home/huhn/.ssh/id_dsa (DSA)

Ab sofort können Sie (aus der laufenden Shell und allen weiteren Shells, in denen Sie die Variablen SSH_AUTH_SOCK und SSH_AGENT_PID richtig gesetzt haben) sich ohne Passworteingabe auf den Zielrechnern anmelden.

Glossar

DISPLAY

Diese Umgebungsvariable legt fest, auf welchem X-Display X-Window-Programme angezeigt werden sollen. Meist ist sie auf ":0" gesetzt, so dass der lokal laufende (erste) X-Server angesprochen wird. Bei einem SSH-Login mit X-Forwarding von rechner1 auf rechner2 wird die Variable auf einen Eintrag der Form "rechner1:10.0" gesetzt.

RSA

Ein Verschlüsselungsalgorithmus, benannt nach seinen Erfindern Rivest, Shamir und Adleman. Er wurde 1977 entwickelt.

DSA

OpenSSH benutzt den "Digital Signature Algorithm" als Verschlüsselungsalgorithmus. Er wurde 1994 vom National Institute of Standards and Technology (NIST) veröffentlicht.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • 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.
  • Aber sicher!
    Sicheres Arbeiten auf entfernten Rechnern und verschlüsselte Datenübertragung – das alles und noch viel mehr bietet SSH.
  • Zu Befehl: Suchen mit grep, egrep, fgrep, (b)zgrep
    Für die Suche nach Wörtern und Ausdrücken in Textdateien bieten sich die Kommandos der grep-Familie an. Als Ergebnis zeigen sie wahlweise die gefundenen Zeilen, die Namen der Dateien, in denen das Suchmuster vorkommt, oder die Anzahl der Treffer an.
  • Zu Befehl: pwd, cd, pushd, popd und dirs
    Die Wege im Verzeichnisdschungel sind unergründlich. Wie Sie auf dem rechten Pfad bleiben und welche Kommandos bei der Navigation helfen, zeigt diese "Zu Befehl"-Folge.
  • Zu Befehl: su, sudo
    Sicher ist sicher – selbst wer Root-Rechte auf dem System hat, sollte nur temporär als Administrator arbeiten, um nicht aus Versehen Schaden anzurichten. Mit su und sudo wechseln Sie auf der Kommandozeile schnell die Identität.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...