Home / LinuxUser / 2003 / 07 / Zu Befehl: ssh, scp

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Sicher senden

Zu Befehl: ssh, scp

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 55 Punkte (2 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...