Das Secure Shell Protocol (SSH) ist vielleicht das bekannteste Mittel, um eine sichere Verbindung zwischen einem Client-Computer (Ihrem Laptop, Telefon oder Desktop) und einem Remote-Server in einem Büro, Rechenzentrum oder in Ihrem Heimnetzwerk herzustellen. Sie werden wahrscheinlich SSH verwenden, wenn Sie auf die Befehlszeile Ihres Webhosting-Dienstes oder eines kopflosen Raspberry Pi zugreifen möchten. SSH ist in irgendeiner Form für fast jedes Betriebssystem verfügbar und oft in das Betriebssystem integriert.
Die meisten Server bieten Ihnen die Wahl, sich über ein Passwort oder über SSH-Schlüssel, die sicherer sind, mit SSH zu verbinden. Die SSH-Schlüsselmethode verwendet kryptografisch generierte öffentliche und private Schlüssel, um eine verschlüsselte Verbindung zwischen Geräten herzustellen.
Unser öffentlicher Schlüssel wird auf dem Remote-Computer gespeichert und ein privater Schlüssel wird auf unserem Computer gespeichert. Die beiden SSH-Schlüssel werden benötigt, um eine sichere Verbindung herzustellen. Schlüssel können auch mit Passphrasen verwendet werden, um eine weitere Sicherheitsebene hinzuzufügen, aber sie können auch ohne verwendet werden, beispielsweise in automatisierten Prozessen.
In dieser Anleitung erfahren Sie, wie Sie SSH-Schlüssel mit PuTTY, dem beliebtesten SSH-Client, und in der Windows-Eingabeaufforderung / im Linux-Terminal erstellen.
Vorbereiten des Remote-Servers für SSH-Schlüssel
Unser Remote-Computer kann sich in einem Rechenzentrum befinden, das von einem Webhosting-Dienst betrieben wird, in unserem Büro oder zu Hause. Typischerweise wird auf Linux-Servern wie VPS und Cloud-Hosting standardmäßig SSH ausgeführt, wobei Passwörter für sichere Anmeldungen verwendet werden. Ist dies nicht der Fall, müssen Sie SSH über die Systemsteuerung für Ihren VPS / Cloud-Dienst aktivieren. Wenn Sie einen Heimserver verwenden, ist dieser möglicherweise nicht installiert. Wenn dies der Fall ist, befolgen Sie diese Schritte, bevor Sie fortfahren.
1. Öffnen Sie ein Terminal und prüfen Sie, ob auf dem Computer ein SSH-Dienst ausgeführt wird. Wenn der SSH-Dienst ausgeführt wird, gibt er Active: active (running) zurück.
sudo service ssh status
2. Öffnen Sie auf dem physischen Server ein Terminal und installieren Sie OpenSSH Server. Sie müssen vor der Maschine sitzen, um diese Befehle zu erteilen.
sudo apt update
sudo apt install openssh-server
3. Starten Sie den SSH-Dienst.
sudo service ssh start
4. Erstellen Sie in Ihrem Home-Verzeichnis ein verstecktes Verzeichnis namens .ssh.
mkdir .ssh
5. Schließen Sie die Verbindung, indem Sie STRG+D drücken oder exit eingeben und die Eingabetaste drücken.
Verwenden von PuTTY zum Herstellen einer Verbindung zu einem Remote-Server mithilfe von SSH-Schlüsseln
PuTTY ist eine Anwendung zum Erstellen und Verwalten von SSH- und seriellen Verbindungen zu Geräten. PuTTY wird mit einer eigenen Schlüsselgeneratoranwendung geliefert, und in diesem Teil der Anleitung erstellen wir einen öffentlichen Schlüssel für unseren Remote-Server und einen privaten Schlüssel auf unserem vertrauenswürdigen Gerät.
1. Laden Sie PuTTY herunter und installieren Sie es. Windows verfügt zwar über eine eigene Eingabeaufforderung, die mit SSH verwendet werden kann, aber PuTTY ist bei weitem das am besten zugängliche Mittel zum Öffnen einer SSH-Verbindung.
2. Suchen Sie nach puttygen und öffnen Sie die Anwendung.
3. Klicken Sie auf RSA und setzen Sie die Bits auf 4096. Klicken Sie auf Generieren, um einen Schlüssel zu erstellen.
4. Bewegen Sie die Maus über den leeren Bereich des Dialogfelds um einen zufälligen Startwert für den Schlüssel zu generieren.
5. Erstellen Sie eine Passphrase für den Schlüssel. Dies wird für SSH-Schlüssel empfohlen, die in interaktiven Sitzungen verwendet werden.
6. Speichern Sie den öffentlichen Schlüssel als id_rsa_putty.pub in einem Ordner namens .ssh.
7. Speichern Sie den privaten Schlüssel als id_rsa_putty.ppk. Die ppk-Datei ist Puttys eigenes privates Schlüsselformat.
8. Markieren Sie den öffentlichen Schlüssel und kopieren Sie den Text.
Kopieren des öffentlichen Schlüssels auf den Remote-Server
1. Starten Sie PuTTY.
2. Geben Sie die IP-Adresse oder den Hostnamen für Ihren Remote-Server ein und klicken Sie auf Öffnen.
3. Wenn Sie dazu aufgefordert werden, geben Sie Ihren Benutzernamen und Ihr Kennwort für den Remote-Server ein. Beachten Sie, dass das Passwort nicht angezeigt wird. Dies ist eine Sicherheitsfunktion, um das „Schultersurfen“ zu verhindern.
4. Erstellen Sie mit dem Nano-Texteditor eine neue Datei mit dem Namen „authorized_keys“ im Verzeichnis „.ssh“.
5. Klicken Sie mit der rechten Maustaste und fügen Sie den öffentlichen Schlüssel ein (erstellt in PuTTYGen) in die leere Datei. Speichern indem Sie STRG+X, dann Y und Enter drücken.
6. Melden Sie sich von der SSH-Sitzung ab durch Drücken von STRG + D.
7. Öffnen Sie PuTTY erneut und Gehen Sie zu SSH >> Auth.
8. Wählen Sie den Putty Private Key (ppk) aus die wir gerade erstellt haben.
9. Scrollen Sie zurück zu Sitzung und geben Sie den Hostnamen / die IP-Adresse für Ihren Server ein und klicken Sie auf Öffnen um eine Verbindung zu starten.
10. Geben Sie Ihren Benutzernamen und dann die Passphrase für Ihren Schlüssel ein. Drücken Sie die Eingabetaste, um sich anzumelden.
Sie haben jetzt die Kontrolle über den Remote-Server, indem Sie ein Linux-Terminal verwenden, das im Linux-Dateisystem arbeitet. Um eine Verbindung zu schließen, verwenden Sie STRG + D oder klicken Sie auf das X, um das Fenster zu schließen.
So erstellen Sie ein SSH-Schlüsselpaar über die Eingabeaufforderung / das Terminal
Das Erstellen eines SSH-Schlüsselpaars über die Eingabeaufforderung / das Linux-Terminal kann mit nur einem Befehl und einigen zu beantwortenden Fragen erfolgen. Wir richten die öffentlichen und privaten Schlüssel auf unserem Client-Rechner ein und kopieren den öffentlichen Schlüssel auf den Remote-Server. Diese Schritte gelten für die Windows-Eingabeaufforderung und das Linux-Terminal.
1. Öffnen Sie eine Eingabeaufforderung, indem Sie die Windows-Taste drücken und nach CMD suchen. Drücken Sie zum Ausführen die Eingabetaste.
2. Verwenden Sie den Befehl ssh-keygen um einen SSH-Schlüssel mit dem Schlüsseltyp RSA mit 4096 Bit zu erstellen.
ssh-keygen -t rsa -b 4096
3. Wenn Sie aufgefordert werden, Ihren Schlüssel zu benennen, drücken Sie die Eingabetaste. Dadurch werden der private und der öffentliche Schlüssel im .ssh-Verzeichnis für Ihr benanntes Konto gespeichert. Zum Beispiel wurden unsere Schlüssel unter C:\Users\lespo\.ssh gespeichert. Linux-Benutzer speichern die Schlüssel in .ssh in Ihrem Home-Verzeichnis \home\user\.ssh
4. Wenn Sie dazu aufgefordert werden, Geben Sie Ihrem Schlüssel als zusätzliche Sicherheitsstufe eine Passphrase. Eine Passphrase ist ein zusätzlicher Sicherheitsschritt für SSH-Schlüssel, die von echten Benutzern (interaktiv) verwendet werden. Eine Passphrase ist nicht erforderlich, wenn die SSH-Verbindung in einem automatisierten Skript verwendet wird.
5. Wechseln Sie in das Verzeichnis zum Speicherort Ihrer SSH-Schlüssel. Hier gehen wir davon aus, dass Sie sich in Ihrem benannten Konto befinden. Zum Beispiel ist C:\Users\lespo unser. Unter Linux wäre es /home/les/.ssh
cd .ssh
6. Listen Sie die Dateien im Verzeichnis auf. Es sollte id_rsa und id_rsa.pub geben.
Windows Command
dir
Linux Command
ls
Kopieren des öffentlichen Schlüssels auf den Remote-Server
Der öffentliche Schlüssel wird auf unserem Remote-Server gespeichert und interagiert mit dem privaten Schlüssel auf unserem vertrauenswürdigen Computer, um eine sichere Verbindung herzustellen. Um den öffentlichen Schlüssel auf unseren Server zu bekommen, müssen wir die Datei sicher hinüber kopieren (scp).
1. Verwenden Sie in einer Eingabeaufforderung den Befehl scp, um die Datei id_rsa.pub sicher in Ihr Home-Verzeichnis auf dem Remote-Server zu kopieren. Sie müssen die IP-Adresse oder den Hostnamen des Remote-Computers kennen. In unserem Beispiel haben wir die Datei nach [email protected]:/home/testuser/ kopiert.
scp id_rsa.pub user@hostname:/home/username
2. SSH in den Remote-Computer.
ssh user@hostname
3. Stellen Sie sicher, dass die Datei id_rsa.pub in Ihrem Home-Verzeichnis vorhanden ist.
ls *.pub
4. Kopieren Sie den Inhalt der Datei in eine neue Datei im Verzeichnis .ssh. Mit dem cat-Befehl senden wir den Inhalt an die Datei,authorized_keys mit einer Pipe, die die Daten an die Datei anhängt (>>).
cat id_rsa.pub >> .ssh/authorized_keys
5. Schließen Sie die SSH-Verbindung, indem Sie STRG + D drücken oder exit eingeben.
6. Verbinden Sie sich erneut über SSH mit dem Remote-Computer. Wenn Sie eine Passphrase für Ihren SSH-Schlüssel erstellt haben, werden Sie dazu aufgefordert.
Verwenden von SSH-Schlüsseln auf einem anderen Computer
Die Wiederverwendung Ihres privaten SSH-Schlüssels ist möglich, aber nicht die beste Sicherheitsmethode. Der Verlust eines Laptops mit dem Schlüssel bedeutet, dass Sie Ihre Schlüssel neu generieren müssen. Best Practice wäre es, für jedes Gerät, das eine Verbindung herstellen möchte, ein neues Schlüsselpaar zu generieren. Anhängen des öffentlichen Schlüssels an die Datei authrozied_keys auf dem Server. Allerdings ist es relativ einfach, einen privaten Schlüssel auf mehreren Geräten wiederzuverwenden.
Wiederverwendung eines privaten PuTTY-Schlüssels
PuTTY speichert den privaten Schlüssel als PPK-Schlüssel und diese Datei ist alles, was wir brauchen, damit eine Maschine mit unserem öffentlichen Schlüssel eine Verbindung zu einem Remote-Server herstellen kann.
1. Gehen Sie zu Ihrem .ssh-Ordner und kopieren Sie die PPK-Datei auf einen USB-Stick. Bewahren Sie diesen USB-Stick sicher auf, da er von jedem verwendet werden kann, um Zugriff auf Ihren Server zu erhalten.
2. Stecken Sie den USB-Stick in einen anderen Computer.
3. Erstellen Sie einen .ssh-Ordner in Ihrem Home-Verzeichnis. Für Windows wäre dies C:\Benutzer\Benutzername\.ssh und Linux /home/user/.ssh.
4. Kopieren Sie die PPK-Datei in das Verzeichnis .ssh.
5. Folgen Sie ab Schritt 7 des Kopierens des öffentlichen Schlüssels auf den Remote-Server, um sich anzumelden.
Wiederverwendung eines privaten Eingabeaufforderungs-/Terminalschlüssels
1. Gehen Sie zu Ihrem .ssh-Ordner und kopieren Sie die private Schlüsseldatei auf einen USB-Stick. Bewahren Sie diesen USB-Stick sicher auf, da er von jedem verwendet werden kann, um Zugriff auf Ihren Server zu erhalten.
2. Stecken Sie den USB-Stick in einen anderen Computer.
3. Erstellen Sie einen .ssh-Ordner in Ihrem Home-Verzeichnis. Für Windows wäre dies C:\Benutzer\Benutzername\.ssh und Linux /home/user/.ssh.
4. Kopieren Sie die Datei mit dem privaten Schlüssel in das Verzeichnis .ssh.
5. Starten Sie eine SSH-Sitzung mit dem Remote-Computer. Wenn Sie eine Passphrase für Ihren SSH-Schlüssel erstellt haben, werden Sie dazu aufgefordert.
ssh user@hostname