Konfigurieren eines OpenSSH-Clients

Um von einem Client-Rechner mit einem OpenSSH-Server verbunden zu sein, müssen die Pakete openssh-clients und openssh auf dem Client-Rechner installiert sein.

Verwenden des Befehls ssh

Der Befehl ssh ist ein sicherer Ersatz für die Befehle rlogin, rsh, und telnet. Mit diesem Befehl können Sie sich in einem Remote-Rechner anmelden und in diesem Rechner Befehle ausführen.

Der Befehl ssh für die Anmeldung in einem Rechner ist gleichbedeutend mit dem Befehl telnet. Wenn Sie sich in einem Remote-Rechner mit dem Namen penguin.example.net anmelden möchten, geben Sie am Shell-Prompt den folgenden Befehl ein:
ssh penguin.example.net
Wenn Sie sich das erste Mal mit dem Befehl ssh in einem Remote-Rechner anmelden, erscheint folgende (oder eine ähnliche) Meldung:
The authenticity of host 'penguin.example.net' can't be established.
DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.
Are you sure you want to continue connecting (yes/no)? 
Geben Sie yes ein, um fortzufahren. Der Server wird zu Ihrer Liste von bekannten Hosts hinzugefügt, wie die folgende Meldung zeigt:
Warning: Permanently added 'penguin.example.net' (DSA) to the list of known hosts.
Anschließend werden Sie aufgefordert, Ihr Passwort für den Remote- Rechner einzugeben. Nach der Eingabe des Passworts befinden Sie sich im Shell-Prompt des Remote-Rechners. Durch die Verwendung des Befehls ssh wird der Benutzername, unter dem Sie im lokalen Client-Rechner angemeldet sind, an den Remote-Rechner übermittelt. Mit dem folgenden Befehl können Sie einen anderen Benutzernamen festlegen:
ssh -l username penguin.example.net
Sie können auch die Syntax ssh username@penguin.example.net verwenden

Mit dem Befehl ssh können Sie Befehle in einem Remote-Rechner ausführen, ohne am Shell-Prompt angemeldet sein zu müssen. Die entsprechende Syntax ist ssh hostnamecommand. Wenn Sie zum Beispiel den Befehl ls /usr/share/doc auf dem Remote-Rechner penguin.example.net ausführen möchten, geben Sie am Shell-Prompt den folgenden Befehl ein:
ssh penguin.example.net ls /usr/share/doc
Nachdem Sie das korrekte Passwort eingegeben haben, wird der Inhalt der Datei /usr/share/doc angezeigt, und Sie kehren zum Shell-Prompt zurück.

Verwenden des Befehls scp

Der Befehl scp kann für die Übertragung von Dateien zwischen Computern über eine sichere, verschlüsselte Verbindung verwendet werden und ist vergleichbar mit dem Befehl rcp.

Die allgemeine Syntax für die Übermittlung einer lokalen Datei zu einem Remote-System ist scp localfile username@tohostname:/newfilename . localfile legt die Quelle fest und username@tohostname:/newfilename den Bestimmungsort.

Um die lokale Datei shadowman an penguin. example.net zu übermitteln, geben Sie Folgendes am Shell-Prompt ein (ersetzen Sie dabei username durch Ihren Benutzernamen):
scp shadowman username@penguin.example.net:/home/username
Die Datei shadowman wird somit an die Datei /home/username/shadowman des Rechners penguin.example.net übermittelt.

Die allgemeine Synatx für die Übermittlung von Remote-Dateien zu einem lokalen System ist scp username@tohostname:/remotefile /newlocalfile. remotefile legt die Quelle fest und newlocalfile den Bestimmungsort.

Viele Dateien können als Quelldateien festgelegt sein. Um zum Beispiel den Inhalt des Verzeichnisses /downloads an das Verzeichnis uploads des Remote-Rechners penguin.example.net. zu übertragen, geben Sie Folgendes am Shell-Prompt ein:
scp /downloads/* username@penguin.example.net:/uploads/

Verwenden des Befehls sftp

Das Dienstprogramm sftp kann zum Öffnen einer sicheren, interaktiven FTP-Sitzung verwendet werden. Es gleicht ftp, mit dem Unterschied, dass es eine sichere, verschlüsselte Verbindung verwendet. Die allgemeine Syntax ist sftpusername@hostname.com . Nachdem sie authentifiziert sind, können Sie einen Satz von Befehlen verwenden (ähnlich wie die Verwendung von FTP). In der man-Seite sftp finden Sie eine Liste dieser Befehle. Um die man-Seite lesen zu können, müssen Sie am Shell-Prompt den Befehl man sftp ausführen. Das Dienstprogramm sftp ist nur in den OpenSSH Versionen 2.5Po1 und höher verfügbar.

Erstellen eines Schlüsselpaares

Wenn Sie nicht jedesmal Ihr Passwort eingeben möchten, wenn Sie die Befehle ssh, scp oder sftp auf einem Remote-Rechner ausführen, können Sie ein Authorisierungsschlüsselpaar erstellen.

AnmerkungSeparate Authorisierungsschlüsselpaare
 

Für das SSH-Protokoll 1 (RSA) und das SSH-Protokoll 2 (DSA) müssen Sie eine seperate Authorisierungsschlüsselpaar haben.

WarnungJeder Benutzer muss eine eigenens Schlüsselpaar haben
 

Für jeden Benutzer müssen Schlüssel erstellt werden. Wenn Sie als Benutzer mit einem Remote-Rechner verbunden werden möchten, müssen Sie die Schlüssel gemäß den folgenden Schritten erstellen. Wenn Sie diese Schritte als Root ausführen, können diese Schlüssel auch nur von Root verwendet werden.

Erstellen eines DSA-Schlüsselpaares

Führen Sie für die Erstellung eines DSA-Schlüsselpaares folgende Schritte aus. DSA wird vom SSH-Protokoll 2 verwendet und standardmäßig in Red Hat Linux 7.1 enthalten.

  1. Um ein DSA-Schlüsselpaar für das Arbeiten mit der Version 2.0 des Protokolls zu erstellen, geben Sie am Shell-Prompt den folgenden Befehl ein:

    ssh-keygen -t dsa

    Übernehmem Sie die standardmäßige Speicherstelle ~/.ssh/id_dsa. Geben Sie einen Pass-Satz ein, der sich von Ihrem Accountpasswort unterscheidet. Bestätigen Sie diesen, indem Sie ihn erneut eingeben. [1]

    TipWas ist ein Pass-Satz?
     

    Ein Pass-Satz ist eine Zeichenkette aus Wörtern und Zeichen, der für die Authentifizierung eines Benutzers verwendet wird. Pass-Sätze unterscheiden sich insofern von Passwörtern, dass Sie für Pass-Sätze Leerzeichen und Tabulatoren verwenden können. Pass-Sätze sind im allgemeinen länger als Passwörter, da sie üblicherweise aus einem Satz und nicht nur aus einem Wort bestehen.

  2. Auml;ndern Sie die Berechtigungen Ihres Verzeichnisses .ssh.ssh mit dem Befehl chmod 755~/.ssh.

  3. Kopieren Sie den Inhalt von ~/.ssh/id_dsa.pub in die Datei ~/.ssh/authorized_keys2 des Rechners, mit dem Sie verbunden werden möchten. Wenn die Datei ~/.ssh/authorized_keys2 nicht existiert, können Sie die Datei ~/.ssh/id_dsa.pub in die Datei ~/.ssh/authorized_keys2 des anderen Computers kopieren. [1]

  4. Wenn Sie GNOME ausführen, gehen Sie zu Abschnitt namens ssh-agent mit GNOME konfigurieren. Wenn Sie das X Window System nicht ausführen, gehen Sie zu Abschnitt namens ssh-agent Konfigurieren.

Erstellen eines RSA-Schlüsselpaares für die Version 2.0

Befolgen Sie die nachstehenden Schritte für die Erstellung eines RSA-Schlüsselpaares für die Version 2.0 des SSH-Protokolls.

  1. Um ein RSA-Schlüsselpaar für das Arbeiten mit der Version 2.0 des Protokolls zu erstellen, geben Sie am Shell-Prompt den folgenden Befehl ein:

    ssh-keygen -t rsa

    Übernehmen Sie die standardmäßige Dateispeicherstelle ~/.ssh/id_rsa. Geben Sie einen Pass-Satz ein, der sich von Ihrem Accountpasswort unterscheidet. Bestätigen Sie diesen, indem Sie ihn erneut eingeben. [1]

  2. Auml;ndern Sie die Berechtigungen Ihres Verzeichnisses .ssh.ssh mit dem Befehl chmod 755~/.ssh.

  3. Kopieren Sie den Inhalt von ~/.ssh/id_rsa.pub in die Datei ~/.ssh/authorized_keys2 des Rechners, mit dem Sie verbunden werden möchten. Wenn die Datei ~/.ssh/authorized_keys2 nicht existiert, können Sie die Datei ~/.ssh/id_rsa.pub in die Datei ~/.ssh/authorized_keys2 des anderen Computers kopieren. [1]

  4. Wenn Sie GNOME ausführen, gehen Sie über zu Abschnitt namens ssh-agent mit GNOME konfigurieren. Wenn Sie das X Window System nicht ausführen, rufen Sie Abschnitt namens ssh-agent Konfigurieren auf.

Erstellen eines RSA-Schlüsselpaares für die Version 1.3 und 1.5

Befolgen Sie die nachstehenden Schritte für die Erstellung eines RSA-Schlüsselpaares für die Version 1 des SSH-Protokolls. Wenn Sie nur mit Red Hat Linux 7.1 Systemen verbunden sind, ist die Erstellung des RSA-Schlüsselpaares nicht notwendig.

  1. Um ein RSA-Schlüsselpaar für das Arbeiten mit den Versionen 1.3 und 1.5 des Protokolls zu erstellen, geben Sie am Shell-Prompt folgenden Befehl ein:
    ssh-keygen
    Übernehmen Sie standardmäßige Dateispeicherstelle (~/.ssh/identity). Geben Sie einen Pass-Satz ein, der sich von Ihrem Accountpasswort unterscheidet. Bestätigen Sie diesen, indem Sie ihn erneut eingeben.

  2. Auml;ndern Sie die Berechtigungen Ihres Verzeichnisses .ssh und Ihrer Schlüssel mit dem Befehlen chmod 755~/.ssh und chmod 644~/.ssh/identity.pub.

  3. Kopieren Sie den Inhalt von ~/.ssh/identity.pub in die Datei ~/.ssh/authorized_keys des Rechners, mit dem Sie verbunden werden möchten. Wenn die Datei ~/.ssh/authorized_keys nicht existiert, können Sie die Datei ~/.ssh/identity.pub in die Datei ~/.ssh/authorized_keys des anderen Computers kopieren. [1]

  4. Wenn Sie GNOME ausführen, gehen Sie zu Abschnitt namens ssh-agent mit GNOME konfigurieren. Wenn Sie das X Window System nicht ausführen, gehen Sie zu Abschnitt namens ssh-agent Konfigurieren.

ssh-agent mit GNOME konfigurieren

Das Dienstprogramm ssh-agent kann zum Speichern Ihres Pass-Satzes verwendet werden. Somit müssen Sie den Pass-Satz nicht jedesmal eingeben, wenn Sie eine ssh oder scp-Verbindung starten. Wenn Sie GNOME verwenden, fordert das openssh-askpass-gnome Dienstprogramm Sie auf, Ihren Pass-Satz einzugeben, wenn Sie sich in GNOME anmelden, und sichert den Pass-Satz, wenn Sie sich aus GNOME abmelden. Sie müssen Ihr Passwort oder Ihren Pass-Satz während einer GNOME-Sitzung nicht jedesmal eingeben, wenn Sie eine ssh oder scp-Verbindung ausführen. Wenn Sie GNOME nicht verwenden, gehen Sie zu Abschnitt namens ssh-agent Konfigurieren.

Um Ihren Pass-Satz während Ihrer GNOME-Sitzung zu sichern, führen Sie folgende Schritte aus:

  1. Das Paket openssh-askpass-gnome muss installiert sein. Um dies festzustellen, verwenden Sie den Befehl rpm -qopenssh-askpass-gnome. Installieren Sie das Paket von Ihrem Red Hat CD-ROM-Set, von einer Red Hat FTP Mirror-Site oder vom Red Hat Network für den Fall, dass es nicht vorhanden ist.

  2. Wenn Sie keine ~/.Xclients-Datei haben, können Sie switchdesk ausführen, um sie zu erstellen. Bearbeiten Sie in der ~/.Xclients -Datei die folgende Zeile:
    exec $HOME/.Xclients-default
    Auml;ndern Sie die Zeile, so dass stattdessen Folgendes zu lesen ist:
    exec	/usr/bin/ssh-agent $HOME/.Xclients-default

  3. Öffnen Sie das Control Center (GNOME Main Menu => Programs => Settings => GNOME Control Center) und gehen Sie zu Session => Startup Programs. Klicken Sie auf Add , und geben Sie /usr/bin/ssh-add in den Textbereich Startup Command ein. Die Prioritätzahl für diesen Befehls muss eine Ziffer höher sein als für alle anderen Befehle, damit sichergestellt wird, dass dieser Befehl zuletzt ausgeführt wird. Eine gute Prioritätszahl für ssh-add ist 70 oder höher. Je höher diese Ziffer ist, umso niedriger ist die Priorität. Sollten noch andere Programme aufgelistet sein, sollte ssh-add die niedrigste Priorität haben. Klicken Sie auf OK, um Ihre Einstellungen zu sichern, und verlassen Sie das GNOME Control Center.

  4. Melden Sie sich aus GNOME ab und wieder an. Mit anderen Worten, starten Sie X erneut. Nachdem GNOME wieder gestartet wurde, erscheint ein Dialogfeld und Sie werden aufgefordert, Ihren Pass-Satz/Pass-Sätze einzugeben. Wenn Sie DSA und RSA- Schlüsselpaare konfiguriert haben, müssen Sie für beide Schlüsselpaare den Pass-Satz eingeben. Ab diesem Zeitpunkt sollten Sie von ssh, scp , oder sftp nicht mehr aufgefordert werden, ein Passwort einzugeben.

ssh-agent Konfigurieren

ssh-agent kann zum Speichern Ihres Pass-Satzes verwendet werden. Somit müssen Sie den Pass-Satz nicht jedesmal eingeben, wenn Sie eine ssh oder scp-Verbindung starten. Wenn Sie das X Winow System nicht ausführen, führen Sie diese Schritte vom Shell-Prompt aus durch. Wenn Sie GNOME ausführen, aber nicht so konfigurieren möchten, das Sie beim Anmelden aufgefordert werden, den Pass-Satz einzugeben, (siehe Abschnitt namens ssh-agent mit GNOME konfigurieren), wird die Prozedur in einem Terminalfenster wie zum Beispiel einem xterm ausgeführt. Ihr Pass-Satz wird dann jedoch nur für dieses Terminalfenster wiedererkannt. Es handelt sich also nicht um eine globale Einstellung.

  1. Geben Sie am Shell-Prompt folgenden Befehl ein:
    exec /usr/bin/ssh-agent $SHELL
    Anschließend:
    ssh-add 
    und Ihren Pass-Satz/Pass-Sätze. Wenn Sie das DSA und das RSA- Schlüsselpaar konfiguriert haben, müssen Sie die Pass-Sätze entsprechend für beide eingeben.

  2. Wenn Sie sich abmelden, geht Ihr Pass-Satz verloren. Sie müssen diese beiden Befehle immer wieder ausführen, wenn Sie sich in einer virtuellen Konsole oder in einem offenen Terminalfenster anmelden.

Fußnoten

[1]

~ steht für das Home-Verzeichnis des derzeit angemeldeten Benutzers. Weitere Informationen finden Sie im Offiziellen Red Hat Linux Handbuch Erste Schritte.