GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Stellen Sie über SSH unter Linux oder Mac OS X eine Verbindung zu einem Server her

Dieser Artikel enthält Schritte zum Herstellen einer Verbindung zu einem Cloud-Server von einem Computer, auf dem Linux® oder MacOS® X ausgeführt wird, mithilfe von Secure Shell (SSH). Außerdem wird erläutert, wie ein SSH-Schlüssel generiert und ein öffentlicher Schlüssel zum Server hinzugefügt wird.

Einführung

SSH ist ein Protokoll, über das Sie auf Ihren Cloud-Server und Runshell-Befehle zugreifen können. Sie können SSH-Schlüssel verwenden, um vertrauenswürdige Computer ohne die Notwendigkeit von Kennwörtern zu identifizieren und mit Ihren Servern zu interagieren.

SSH ist mit Secure Sockets Layer (SSL) verschlüsselt, was das Abfangen und Lesen dieser Kommunikation erschwert.

Hinweis: Viele der Befehle in diesem Artikel müssen auf Ihrem lokalen Computer ausgeführt werden. Die aufgeführten Standardbefehle gelten für die Linux-Befehlszeile oder das MacOS X-Terminal. Um SSH-Verbindungen von Windows® aus herzustellen, können Sie einen Client verwenden, der dem kostenlosen Programm PuTTY ähnelt. Zum Generieren von Schlüsseln können Sie ein verwandtes Programm, PuTTYGen, verwenden.

Anmelden

Melden Sie sich mit der Internet Protocol (IP)-Adresse und dem Passwort für Ihren Cloud-Server an, indem Sie den folgenden ssh ausführen Befehl mit username@ipaddress als Argument:

ssh [email protected]

Das System fordert Sie auf, das Passwort für das Konto einzugeben, mit dem Sie sich wieder verbinden.

Remote-Host-Identifikation

Wenn Sie Ihren Cloud-Server neu erstellt haben, erhalten Sie möglicherweise die folgende Meldung:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Eine der Sicherheitsfunktionen von SSH besteht darin, dass der Remote-Host bei der Anmeldung bei einem Cloudserver über einen eigenen Schlüssel verfügt, der ihn identifiziert. Wenn Sie versuchen, eine Verbindung herzustellen, vergleicht Ihr SSH-Client den Schlüssel des Servers mit allen Schlüsseln, die er von früheren Verbindungen zu dieser IP-Adresse gespeichert hat. Nachdem Sie einen Cloud-Server neu erstellt haben, ändert sich dieser Remote-Host-Schlüssel, sodass Ihr Computer Sie vor möglicherweise verdächtigen Aktivitäten warnt.

Um die Sicherheit Ihres Servers zu gewährleisten, können Sie die Webkonsole im Cloud Control Panel verwenden, um den neuen Schlüssel Ihres Servers zu überprüfen. Wenn Sie sicher sind, dass Sie nicht gespooft werden, können Sie diesen Schritt überspringen und den Datensatz des alten SSH löschen Hostschlüssel wie folgt:

Auf Ihrem lokalen Computer, bearbeiten Sie die SSH known_hosts Datei und entfernen Sie alle Zeilen, die mit der IP-Adresse Ihres Cloud-Servers beginnen.

Hinweis: Verwenden Sie den Editor Ihrer Wahl, z. B. nano auf Debian oder dem Betriebssystem Ubuntu oder vi auf RPM- oder CENTOS-Servern. Der Einfachheit halber wird in diesem Artikel nur nano verwendet . Wenn Sie lieber vi verwenden , ersetzen Sie vi für nano in den Bearbeitungsbefehlen. Weitere Informationen zur Verwendung von nano , siehe/support/how-to/modify-your-hosts-file/.

nano ~/.ssh/known_hosts

Wenn Sie auf Ihrem lokalen Computer nicht Linux oder MacOS X verwenden, ist der Speicherort der bekannten_Hosts Datei kann abweichen. Informationen zum Speicherort der Datei finden Sie in Ihrem Betriebssystem. PuTTY unter Windows bietet Ihnen die Möglichkeit, den gespeicherten Hostschlüssel zu ersetzen.

Generieren Sie ein neues SSH-Schlüsselpaar

Sie können den SSH-Zugriff auf Ihren Cloud-Server gegen Brute-Force-Passwortangriffe sichern, indem Sie ein Paar aus öffentlichem und privatem Schlüssel verwenden. Ein öffentlicher Schlüssel wird auf dem Server und ein passender privater Schlüssel auf Ihrem lokalen Computer abgelegt. Wenn Sie SSH auf Ihrem Server so konfigurieren, dass nur Verbindungen mit Schlüsseln akzeptiert werden, kann sich niemand nur mit einem Passwort anmelden. Verbindungsclients müssen einen privaten Schlüssel verwenden, für den ein öffentlicher Schlüssel auf dem Server registriert ist. Weitere Informationen zur Sicherheit finden Sie unter Best Practices für die Sicherheit von Linux-Servern.

Verwenden Sie die folgenden Schritte, um ein SSH-Schlüsselpaar zu generieren:

  1. Führen Sie den folgenden Befehl mit Ihrer E-Mail-Adresse als Label aus. Ersetzen Sie [email protected] durch Ihre E-Mail-Adresse im Befehl.

    ssh-keygen -t rsa -C "[email protected]"
    

    Eine Meldung zeigt an, dass Ihr öffentlich-privates RSA-Schlüsselpaar generiert wird.

    Drücken Sie an der Eingabeaufforderung Enter um den Standardspeicherort zu verwenden, oder geben Sie eine Datei ein, in der der Schlüssel gespeichert werden soll, und drücken Sie Enter .

  2. Wenn Sie die zusätzliche Sicherheit eines Passworts für das Schlüsselpaar wünschen, geben Sie eine Passphrase ein und drücken Sie die Eingabetaste . Wenn Sie kein Passwort mit dem Schlüsselpaar verwenden möchten, drücken Sie Enter um fortzufahren, ohne eine festzulegen.

    Ihr Schlüsselpaar wird generiert und die Ausgabe ähnelt dem folgenden Beispiel:

    Your identification has been saved in /LocalFileLocation/id_rsa.
    Your public key has been saved in /LocalFileLocation/id_rsa.pub.
    The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
    
  3. Fügen Sie optional Ihren neuen Schlüssel zum lokalen ssh-agent hinzu Datei, damit SSH Ihren Schlüssel finden kann, ohne bei jeder Verbindung den Speicherort angeben zu müssen:

    ssh-add ~/.ssh/id_rsa
    

    Sie können anstelle des ssh-agent eine SSH-Konfigurationsverknüpfung verwenden Datei, indem Sie den Anweisungen in der Verknüpfungskonfiguration folgen Abschnitt später in diesem Artikel.

Fügen Sie den öffentlichen Schlüssel zu Ihrem Cloud-Konto hinzu

Um das Hinzufügen Ihres Schlüssels zu neuen Cloud-Servern, die Sie erstellen, zu vereinfachen, laden Sie den öffentlichen Schlüssel wie folgt in Ihr Cloud-Konto hoch:

  1. Melden Sie sich beim Cloud Control Panel an.

  2. Klicken Sie in der oberen Navigationsleiste auf Produkt auswählen> Rackspace Cloud .

  3. Wählen Sie Server> SSH-Schlüssel aus .

  4. Klicken Sie auf Öffentlichen Schlüssel hinzufügen .

  5. Geben Sie einen Schlüsselnamen ein, z. B. Arbeits-Laptop , um Sie daran zu erinnern, für welchen Computer dieser Schlüssel bestimmt ist.

  6. Wählen Sie die Region aus, für die Sie den öffentlichen Schlüssel speichern möchten. Um Ihren Schlüssel in mehreren Regionen zu speichern, wiederholen Sie diese Schritte für jede Region. Der Schlüssel muss sich in derselben Region wie der Server befinden.

  7. Fügen Sie den Inhalt von id_rsa.pub ein Datei, die Sie erstellt haben, in den Public Key aufstellen. Sie können den Dateiinhalt abrufen, indem Sie die Datei entweder in einem Texteditor öffnen oder den folgenden Befehl ausführen:

    cat ~/.ssh/id_rsa.pub
    
  8. Klicken Sie auf Öffentlichen Schlüssel hinzufügen .

Wenn Sie den Schlüssel manuell hinzufügen möchten, anstatt die Systemsteuerung zu verwenden, lesen Sie die Best Practices für die Sicherheit von Linux-Servern und verwenden Sie den folgenden Befehl:

 ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress}

Erstellen Sie einen neuen Server mit einem gespeicherten Schlüssel

Wenn Sie einen neuen Cloud-Server erstellen, können Sie dem neuen Server einen gespeicherten Schlüssel hinzufügen.

  1. Auf dem Create Server Erweitern Sie auf der Seite Erweiterte Optionen Abschnitt.

  2. Aus dem SSH-Schlüssel Wählen Sie im Menü Ihren Schlüssel aus der Liste aus.

  3. Wenn Sie keinen gespeicherten Schlüssel in der Liste sehen, können Sie eine der folgenden Aktionen ausführen:

    • Stellen Sie die Region für den neuen Server auf die Region um, in der Sie den SSH-Schlüssel gespeichert haben.
    • Wiederholen Sie die Schritte im vorherigen Abschnitt, Fügen Sie den öffentlichen Schlüssel zu Ihrem Cloud-Konto hinzu ,um den Schlüssel der Region hinzuzufügen, in der Sie den neuen Server erstellen möchten.

Fügen Sie den Schlüssel zu einem bestehenden Server hinzu

Sie können das Cloud Control Panel nicht verwenden, um einem vorhandenen Server einen öffentlichen Schlüssel hinzuzufügen. Befolgen Sie diese Schritte, um den Schlüssel manuell hinzuzufügen:

  1. Erstellen Sie auf Ihrem Cloud-Server ein Verzeichnis namens .ssh im Home-Ordner des Benutzers, mit dem Sie sich über SSH verbinden.

    mkdir -p ~/.ssh
    
  2. Erstellen oder bearbeiten Sie die authorized_keys Datei und fügen Sie Ihren öffentlichen Schlüssel mit dem folgenden Befehl zur Liste der autorisierten Schlüssel hinzu:

    nano ~/.ssh/authorized_keys
    

    Ein Schlüssel befindet sich in einer Zeile, stellen Sie also sicher, dass der Schlüssel nicht durch Zeilenumbrüche unterbrochen wird. Sie können mehrere Schlüssel in den authorized_keys haben Datei, mit einem Schlüssel pro Zeile.

  3. Legen Sie mithilfe der folgenden Befehle die richtigen Berechtigungen für den Schlüssel fest:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  4. Wenn Sie Probleme haben und Berechtigungsprobleme beheben müssen, führen Sie den folgenden Befehl aus:

    restorecon -R -v /root/.ssh
    

Nachdem Sie den öffentlichen Schlüssel zu den authorized_keys hinzugefügt haben , können Sie eine SSH-Verbindung herstellen, indem Sie Ihr Schlüsselpaar anstelle des Kontokennworts verwenden.

Shortcut-Konfiguration

Verwenden Sie die folgende Anleitung, um eine Verbindungsverknüpfung einzurichten, indem Sie eine ~/.ssh/config erstellen Datei auf Ihrem lokalen Computer und fügen Sie Ihre Server- und Schlüsseldetails hinzu.

  1. Fügen Sie mit einem Texteditor den folgenden Text zu ~/.ssh/config hinzu Datei, indem Sie die Werte ändern, damit sie mit Ihren Serverinformationen übereinstimmen:

    Host shortcutName
    HostName serverAddressOrIPAddress
    User remoteUsername
    IdentityFile /path/to/appropriate/ssh/rsa/private/key
    

    Jeder der folgenden Einträge beschreibt eine Funktion des Servers:

    • Host: Ein Verknüpfungsname, den Sie verwenden, um SSH anzuweisen, diese Verbindung zu verwenden.
    • Hostname: Die Adresse des Servers, mit dem Sie sich verbinden.
    • Benutzer: Der Name des Benutzerkontos, mit dem eine Verbindung auf dem Server hergestellt werden soll.
    • Identitätsdatei: Der Speicherort der privaten Schlüsseldatei (id_rsa).
  2. Nachdem Sie die config eingerichtet haben verbinden Sie sich mit dem Server, indem Sie den folgenden Befehl mit Ihrem Verknüpfungsnamen verwenden:

    ssh shortcutName
    

Fehlerbehebung

Wenn Sie nach dem Neustart des Servers Probleme haben, eine neue Verbindung herzustellen, führen Sie die folgenden Schritte aus, um das Problem zu beheben:

  • Die beste Möglichkeit zur Behebung von SSH- oder SFTP-Anmeldeproblemen besteht darin, sich über SSH anzumelden, während Sie bei der Notfallkonsole angemeldet sind, und das Protokoll zu beobachten, das normalerweise den Grund für einen Fehler enthält. Wenn kein Grund angegeben wird, könnte es sich um ein Firewall-Problem handeln. Führen Sie für RPM-Server den folgenden Befehl aus, um das Protokoll anzuzeigen:

      tail -f /var/log/secure
    

    Führen Sie für Debian-Server den folgenden Befehl aus, um das Protokoll anzuzeigen:

      tail -f /var/log/auth.log
    
  • Wenn Sie ein connection timeout erhalten Fehler, überprüfen Sie die IP-Adresse, die Sie verwendet haben, um sicherzustellen, dass sie korrekt ist. Sie können auch die iptables des Servers überprüfen, um sicherzustellen, dass der von SSH verwendete Port nicht blockiert wird.

  • Wenn Sie eine connection refused erhalten Fehler, versuchen Sie möglicherweise, SSH mit dem falschen Port zu verwenden. Wenn Sie Ihren Server geändert haben, um auf einen anderen Port als 22 zu hören, verwenden Sie den -p Option mit SSH, um den Port anzugeben.

  • Wenn Ihre Anmeldung abgelehnt wird, liegt möglicherweise ein Problem mit Ihrem Schlüssel vor. Ändern Sie die sshd Konfiguration zum Zulassen von Passwortverbindungen durch Setzen von PasswordAuthentication auf yes . Starten Sie den Server neu und versuchen Sie es erneut. Wenn Sie nach diesen Änderungen eine Verbindung herstellen, liegt das Problem beim Schlüssel und Sie müssen überprüfen, ob sich der Schlüssel an der richtigen Stelle auf dem Server befindet.

  • Wenn alles andere fehlschlägt, überprüfen Sie Ihre Änderungen und starten Sie den SSH-Daemon auf dem Server neu, indem Sie den folgenden Befehl ausführen:

    sudo service ssh restart
    

    Wenn Sie eine Meldung erhalten, dass der SSH-Dienst unbekannt ist, führen Sie den Befehl mit sshd aus stattdessen als Dienstname.


Linux
  1. Wie man SSH unter Linux von Android aus macht

  2. Wie kann man mit einem anderen Server per SSH auf einen Server zugreifen?

  3. Erste Schritte mit SSH unter Linux

  4. Wie setze ich das Plesk Admin-Passwort mit SSH in Linux Server zurück?

  5. Effiziente Tastenzuordnungen unter Mac und Linux

12 Dinge, die nach der Installation eines Linux-Servers zu tun sind

Generieren und Verwenden eines SSH-Schlüssels mit PuTTY

So führen Sie SSH zum Server über Linux

Generieren Sie RSA-Schlüssel mit SSH mithilfe von PuTTYgen

Melden Sie sich mit einem privaten SSH-Schlüssel auf einem Windows-Client bei einem Linux-Server an

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server unter Linux oder Windows herzustellen