22.3. Konfigurieren eines OpenSSH-Clients

Um sich einem Client-Rechner mit einem OpenSSH-Server zu verbinden, müssen Sie die Pakete openssh-clients und openssh auf dem Client-Rechner installiert haben.

22.3.1. Verwenden des Befehlsssh

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

Die Verwendung des Befehls ssh für die Anmeldung auf einem Rechner ist vergleichbar mit dem Befehl telnet. Wenn Sie sich auf 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 auf 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 Ihrer Liste von bekannten Hosts wie im Folgenden angegeben hinzugefügt:

Warning: Permanently added 'penguin.example.net' (RSA) 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. Wenn Sie keinen Benutzernamen angeben, so wird der Benutzername, mit dem Sie auf dem lokalen Rechner angemeldet sind, an den Remote-Rechner weitergegeben. Mit dem folgenden Befehl können Sie einen anderen Benutzernamen festlegen:

ssh username@penguin.example.net

Sie können auch die Syntax ssh -l username penguin.example.net verwenden.

Mit dem Befehl ssh können Sie Befehle auf einem Remote-Rechner ausführen, ohne am Shell-Prompt angemeldet sein zu müssen. Die entsprechende Syntax ist ssh hostname command. 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 des Verzeichnisses /usr/share/doc angezeigt, und Sie kehren zum Shell-Prompt zurück.

22.3.2. 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 Übertragung einer lokalen Datei zu einem Remote-System lautet wie folgt:

scp localfile username@tohostname:/newfilename

Die Datei 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 Syntax für die Übermittlung von Remote-Dateien zu einem lokalen System lautet:

scp username@tohostname:/remotefile /newlocalfile

Die Datei 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/

22.3.3. 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 sftp username@hostname.com. Nach der Authentifizierung 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 Befehlman sftp ausführen. Das Dienstprogramm sftp ist nur in den OpenSSH Versionen 2.5.0p1 und höher verfügbar.

22.3.4. Erstellen eines Schlüsselpaares

Wenn Sie nicht jedesmal Ihr Passwort eingeben möchten, wenn Sie die Befehle ssh, scp oder sftp verwenden, um sich mit einem Remote-Rechner zu verbinden, können Sie ein Authorisierungsschlüsselpaar erstellen.

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.

Das Starten mit OpenSSH Version 3.0, ~/.ssh/authorized_keys2, ~/.ssh/known_hosts2 und /etc/ssh_known_hosts2 ist veraltet. SSH Protokoll 1 und 2 verwenden die Dateien ~/.ssh/authorized_keys, ~/.ssh/known_hosts und /etc/ssh/ssh_known_hosts.

Red Hat Enterprise Linux 3 verwendet SSH Protokoll 2 und RSA-Schlüssel standardmäßig.

TippTipp
 

Wenn Sie Ihr System neu installieren, das erstellte Schlüsselpaar jedoch beibehalten möchten, erstellen Sie eine Sicherungskopie des Verzeichnisses .ssh in Ihrem Home-Verzeichnis. Kopieren Sie dieses Verzeichnis nach der Installation erneut in Ihr Home-Verzeichnis. Dies ist für alle Benutzer Ihres Systems, einschließlich dem root-Benutzer, möglich.

22.3.4.1. Erstellen eines RSA-Schlüsselpaares für die Version 2

Befolgen Sie die nachstehenden Schritte für die Erstellung eines RSA-Schlüsselpaares für die Version 2 des SSH-Protokolls. Dieses ist der Standard seit OpenSSH 2.9.

  1. Um ein RSA-Schlüsselpaar für das Arbeiten mit der Version 2 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 ein Passwort ein, das sich von Ihrem Accountpasswort unterscheidet. Bestätigen Sie diesen, indem Sie ihn erneut eingeben.

    Der öffentliche Schlüssel wird in die Datei ~/.ssh/id_rsa.pub und der private Schlüssel in die Datei ~/.ssh/id_rsa geschrieben. Geben Sie Ihren privaten Schlüssel niemals an andere weiter.

  2. Ändern Sie die Berechtigungen Ihres Verzeichnisses .ssh mit folgendem Befehl:

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

  4. Ändern Sie die Berechtigungen des Verzeichnisses authorized_keys mit folgendem Befehl:

    chmod 644 ~/.ssh/authorized_keys
  5. Wenn Sie GNOME ausführen, gehen Sie über zu Abschnitt 22.3.4.4. Wenn Sie das X Window System nicht ausführen, rufen Sie Abschnitt 22.3.4.5 auf.

22.3.4.2. Erstellen eines DSA-Schlüsselpaares für die Version 2

Folgen Sie den folgenden Schritten, um ein DSA-Schlüsselpaar für Version 2 des SSH Protokolls zu erstellen.

  1. Um ein DSA Schlüsselpaar für Version 2 des Protokolls zu erstellen, geben Sie am Shell Prompt den folgenden Befehl ein:

    ssh-keygen -t dsa

    Übernehmen Sie standardmäßige Dateispeicherstelle ~/.ssh/id_dsa. Geben Sie ein Passwort ein, das sich von Ihrem Accountpasswort unterscheidet. Bestätigen Sie diesen, indem Sie es erneut eingeben.

    TippTipp
     

    Passwort hier meint eine Folge von Wörtern und Zeichen um einen Benutzer zu authentifizieren. Es unterscheidet sich hier von herkömmlichen Passwörtern in der Form, das Sie Leerzeichen oder Tabs verwenden können. Passwörter hier sind für gewöhnlich länger als herkömmliche Passwörter, da sie üblicherweise ganze Sätze statt nur ein einzelnes Wort sind.

    Der öffentliche Schlüssel wird in die Datei ~/.ssh/id_dsa.pub und der private Schlüssel in die Datei ~/.ssh/id_dsa geschrieben. Geben Sie Ihren privaten Schlüssel niemals an andere weiter.

  2. Ändern Sie die Berechtigungen des Verzeichnisses .ssh mit folgendem Befehl:

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

  4. Ändern Sie die Berechtigungen des Verzeichnisses authorized_keys mit folgendem Befehl:

    chmod 644 ~/.ssh/authorized_keys
  5. Wenn Sie GNOME ausführen, gehen Sie über zu Abschnitt 22.3.4.4. Wenn Sie das X Window System nicht ausführen, rufen Sie Abschnitt 22.3.4.5 auf.

22.3.4.3. Erstellen eines Schlüsselpaares für 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 DSA-Systemen verbinden, benötigen Sie die RSA Schlüsselpaare der Version 1.3 oder 1.5 nicht.

  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 -t rsa1

    Übernehmen Sie standardmäßige Dateispeicherstelle (~/.ssh/identity). Geben Sie ein Passwort ein, das sich von Ihrem Accountpasswort unterscheidet. Bestätigen Sie diesen, indem Sie ihn erneut eingeben.

    Der öffentliche Schlüssel wird in die Datei ~/.ssh/identity.pub. und der private Schlüssel in die Datei ~/.ssh/identity geschrieben. Geben Sie Ihren privaten Schlüssel niemals an andere weiter.

  2. Ä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.

  4. Wenn Sie GNOME ausführen, gehen Sie zu Abschnitt 22.3.4.4. Wenn Sie GNOME nicht ausführen, gehen Sie zu Abschnitt 22.3.4.5.

22.3.4.4. Konfigurieren von ssh-agent mit GNOME

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

Um Ihr Passwort 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 -q openssh-askpass-gnome. Installieren Sie das Paket von Ihrem Red Hat Enterprise Linux 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. Wählen Sie den Hauptmenü-Button (auf dem Panel) => Extras => Präferenzen => Sitzungen, und klicken Sie auf Startup Programme. Klicken Sie auf Hinzufügen und geben Sie /usr/bin/ssh-add in den Textbereich Start-Befehl ein. Die Prioritätzahl für diesen Befehls muss 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 Zahl ist, umso niedriger ist die Priorität. Sollten noch andere Programme aufgelistet sein, sollte dies die niedrigste Priorität haben. Klicken Sie auf Schließen um das Programm zu beenden.

  3. 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, Ihr Passwort einzugeben. Wenn Sie DSA und RSA- Schlüsselpaare konfiguriert haben, müssen Sie für beide Schlüsselpaare das Passwort eingeben. Ab diesem Zeitpunkt sollten Sie von ssh, scp, or sftp nicht mehr aufgefordert werden, ein Passwort einzugeben.

22.3.4.5. Konfigurieren von ssh-agent

Der ssh-agent kann zum Speichern Ihres Passwortes verwendet werden. Somit müssen Sie das Passwort nicht jedesmal eingeben, wenn Sie eine ssh oder scp-Verbindung starten. Wenn Sie das X Window System nicht ausführen, führen Sie die folgenden Schritte vom Shell-Prompt aus durch. Wenn Sie GNOME ausführen, aber nicht so konfigurieren möchten, das Sie beim Anmelden aufgefordert werden, das Passwort einzugeben, (siehe Abschnitt 22.3.4.4) wird die Prozedur in einem Terminalfenster wie zum Beispiel einem XTerm ausgeführt. Wenn Sie X, jedoch nicht GNOME ausführen, wird dieses Verfahren in einem Terminalfenster ausgeführt. Ihr Passwort 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
  2. Und anschließend den Befehl:

    ssh-add 

    Geben Sie nun Ihr Passwort/Passwörter ein. Wenn Sie mehr als ein Schlüsselpaar konfiguriert haben, müssen Sie die Passwörter entsprechend für jedes Paar eingeben.

  3. Wenn Sie sich abmelden, geht Ihr Passwort verloren. Sie müssen diese beiden Befehle immer wieder ausführen, wenn Sie sich in einer virtuellen Konsole anmelden oder ein Terminalfenster öffnen.