Einführung
Das SSH-Protokoll ermöglicht einen sicheren Kanal über ein unsicheres Netzwerk in einer Client-Server-Architektur und verbindet einen SSH-Client mit einem SSH-Server. Ein SSH-Schlüsselpaar besteht aus einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel kann auf einem Server gespeichert werden, und ein Client, der den zugehörigen privaten Schlüssel besitzt, kann sich anschließend damit verbinden. Stimmen die öffentlichen und privaten SSH-Schlüssel überein, erfolgt die Anmeldung ohne Passwort.
Dies ist im Allgemeinen die sicherste und bequemste Verbindungsmethode.
Diese Anleitung erklärt, wie Sie SSH-Schlüssel auf Ihrem lokalen Rechner konfigurieren, um sichere Verbindungen zu Remote-Servern herzustellen.
Voraussetzungen
- Zugriff auf das OVHcloud-Kontrollpanel
- Ein dedizierter Server oder ein VPS auf Ihrem OVHcloud-Konto
- Ein SSH-Clientprogramm (Befehlszeile oder grafische Benutzeroberfläche)
- Administrativer (sudo) Zugriff via SSH auf Ihren Server
Diese Anleitung gilt nicht für Standardinstallationen von Windows Server, da diese auf dem Remote Desktop Protocol (RDP) basieren. Für den OVHcloud-Rettungsmodus werden SSH-Verbindungen verwendet. Weitere Informationen finden Sie im Abschnitt „Mehr erfahren“ dieser Anleitung.
Erstellen eines SSH-Schlüsselpaares
Die folgenden Anweisungen beschreiben zwei Methoden zur Verwendung von SSH-Schlüsseln:
- Erstellen eines OpenSSH-Schlüsselpaares und Verbinden mit dem Server über den SSH-Befehlszeilenclient
- Erstellen eines PuTTY-Schlüsselpaares und Verbinden mit dem Server über den PuTTY-SSH-Client
Sie können beide Methoden kombinieren, aber beachten Sie, dass PuTTY Schlüsseldateien in einem speziellen Format speichert, das mit SSH-Schlüsseldateien, die mit dem OpenSSH-Client erstellt wurden, inkompatibel ist. Das bedeutet, dass ein mit dem SSH-Befehlszeilenclient erstellter privater Schlüssel zuerst in das PuTTY-Format konvertiert werden muss und umgekehrt.
Erstellen eines SSH-Schlüsselpaares über die Befehlszeile
Öffnen Sie auf einem Mac-Computer oder einem Gerät mit installiertem Linux-Betriebssystem die Befehlszeilenanwendung (Terminal).
Prüfen Sie, ob sich in Ihrem $HOME-Verzeichnis ein Ordner namens .ssh befindet. Falls der Ordner nicht existiert, erstellen Sie ihn:
mkdir ~/.ssh
Unter dem aktuellen Windows-Betriebssystem öffnen Sie die Eingabeaufforderung, indem Sie “cmd” in die Suchleiste eingeben (oder öffnen Sie PowerShell über das Menü).
Wechseln Sie in das .ssh-Verzeichnis Ihres aktiven Windows-Benutzers (standardmäßig: C:\Users\WindowsUsername\.ssh):
cd .sshUm einen 4096-Bit-RSA-Schlüssel zu generieren, verwenden Sie folgenden Befehl:
ssh-keygen -b 4096
Die Verwendung der Option -t bei diesem Befehl ermöglicht die Angabe einer anderen Verschlüsselungsmethode, zum Beispiel:
ssh-keygen -t ed25519 -a 256
Die Befehlszeile fordert Sie auf, den neu erstellten Schlüssel in der Standarddatei zu speichern:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):Sie können mit der Eingabetaste den vorgeschlagenen Dateinamen übernehmen oder einen eigenen Namen eingeben. Dies ist relevant, wenn sich mehrere Schlüsselpaare im Verzeichnis .ssh befinden. Weitere Informationen dazu finden Sie im Abschnitt „Verwalten mehrerer SSH-Schlüssel“.
In diesem Beispiel werden die Standarddateinamen id_rsa und id_rsa.pub verwendet.
Im nächsten Schritt können Sie Ihren SSH-Schlüssel mit einer Passphrase schützen. Dies wird aus Sicherheitsgründen empfohlen.
Der Fernzugriff auf Ihren Server ist nur so sicher wie das Clientgerät, auf dem der private Schlüssel gespeichert ist. Daher ist es bei der Verwendung von SSH-Schlüsseln unerlässlich, Ihr Gerät und Ihre Dateien vor unberechtigtem Zugriff zu schützen.
Aus Gründen der Bequemlichkeit und Sicherheit empfiehlt sich die Verwendung eines Passwort-Managers auf Ihrem Gerät, beispielsweise der Open-Source-Lösung KeePass.
Alle SSH-Schlüssel sollten im Ordner .ssh gespeichert werden. Öffentliche Schlüsseldateien haben die Endung .pub im Dateinamen.
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MRk+Y0zCOoOkferhkTvMpcMsYspj212lK7sEauNap user@hostname
The key's randomart image is:
+---[RSA 4096]----+
| .. o |
| . .= o |
| o o X |
|. . . . |
|. .=.o .S. |
| =o.o. . . |
|o + . . o .. |
|.. . . oEoo . |
|o. .o+oo |
+----[SHA256]-----+Um Ihren öffentlichen Schlüssel anzuzeigen und zu exportieren, verwenden Sie den Befehl `cat` für Ihre Datei `pub.key`. Kopieren Sie die vollständige Schlüsselzeichenfolge in die Zwischenablage, um sie später Ihrem Server hinzuzufügen.
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8teh2NJ42qYZV98gTNhumO1b6rMYIkAfRVazl
k6dSS3xf2MXJ4YHsDacdjtJ+evXCFBy/IWgdkFtcvsGAMZ2N1RdvhDyQYcy6NDaJCBYw1K6Gv5fJ
SHCiFXvMF0MRRUSMneYlidxUJg9eDvdygny4xOdC6c1JrPrSgOc2nQuKeMpOoOWLINIswg1IIFVk
kFMPrFivP8Z6tidzVpAtbr1sXmJGZazYWrU3FoK2a1sF1zEWrmlMOzX81zEWrmlMOzX8CpZW8Rae
i4ANmLy7NULWK36yU0Rp9bFJ4o0/4PTkZiDCsK0QyHhAJXdLN7ZHpfJtHIPCnexmwIMLfIhCWhO5
user@hostnameIm macOS-Terminal können Sie die Befehle `pbcopy` und `pbpaste` verwenden, um Schlüsselzeichenfolgen schneller zu verwalten. Verwenden Sie beispielsweise diesen Befehl, um den Schlüssel aus der Datei `id_rsa.pub` in die Zwischenablage zu kopieren:
pbcopy < ~/.ssh/id_rsa.pub
Unter Windows können Sie die Datei mit Notepad über den Datei-Explorer öffnen (klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie „Öffnen mit“) oder einen der folgenden Befehle verwenden (in \Users\WindowsUsername\.ssh):
cmd
more id_rsa.pub
PowerShell
cat id_rsa.pub
Kopieren Sie die vollständige Schlüsselzeichenfolge in die Zwischenablage, um sie später auf Ihrem Server hinzuzufügen.
Verwendung der Zwischenablage
Wenn Sie in der Windows-Eingabeaufforderung arbeiten, können Sie mit der rechten Maustaste den Inhalt Ihrer Zwischenablage in das Eingabeaufforderungsfenster einfügen. Um eine Zeichenfolge aus dem Eingabeaufforderungsfenster zu kopieren, markieren Sie diese und drücken Sie die Eingabetaste. Diese Funktionen finden Sie auch, indem Sie mit der rechten Maustaste auf die Menüleiste klicken.
Erstellen eines SSH-Schlüsselpaares mit PuTTY
PuTTY ist eine Open-Source-SSH-Client-Software mit grafischer Benutzeroberfläche, die für Windows und andere Betriebssysteme verfügbar ist. Sie bietet eine Begleitsoftware zum Generieren von SSH-Schlüsseln: den PuTTY Key Generator (PuTTYgen).
PuTTY dient hauptsächlich der Verwaltung von SSH-Verbindungen von einem Windows-Client zu einem GNU/Linux-Server. PuTTY speichert Schlüsseldateien in einem speziellen Format, das sie inkompatibel mit SSH-Schlüsseldateien macht, die mit dem OpenSSH-Client erstellt wurden, der auf den meisten modernen Betriebssystemen nativ verfügbar ist.
Falls erforderlich, können die wie oben beschrieben über die Kommandozeile generierten Schlüssel in das PPK-Format für die Verwendung mit dem PuTTY-Client konvertiert werden. Für die komfortabelste Verwendung von SSH-Schlüsseln empfiehlt es sich, eine Option zu wählen und dabei zu bleiben (SSH-Privatschlüssel oder PuTTY-Privatschlüssel).
Falls PuTTY noch nicht installiert ist (prüfen Sie Ihre Programmliste oder nutzen Sie die Suchfunktion), laden Sie es von der offiziellen Website herunter. Das empfohlene Standardinstallationspaket enthält PuTTYgen, es ist aber auch als eigenständige Datei auf der Website verfügbar.
Öffnen Sie PuTTYgen und wählen Sie einen unterstützten Verschlüsselungsalgorithmus aus. In diesem Beispiel wird RSA verwendet. Geben Sie unten rechts 4096 als Bitanzahl ein und klicken Sie anschließend auf die Schaltfläche „Generieren“.
Bewegen Sie Ihren Mauszeiger frei im Bereich unterhalb der Fortschrittsanzeige:
Wenn der Fortschrittsbalken voll ist, ist der Schlüssel fertig.
Kopieren Sie den vollständigen Schlüsselstring in die Zwischenablage, um ihn Ihrem Server hinzuzufügen. Speichern Sie beide Schlüssel als Dateien, indem Sie auf die entsprechenden Schaltflächen klicken, und geben Sie eine Passphrase zum Schutz ein.
Der Fernzugriff auf Ihren Server ist nur so sicher wie das Clientgerät, auf dem der private Schlüssel gespeichert ist. Daher ist es bei der Verwendung von SSH-Schlüsseln unerlässlich, Ihr Gerät und Ihre Dateien vor unberechtigtem Zugriff zu schützen.
Aus Gründen der Bequemlichkeit und Sicherheit empfiehlt sich die Verwendung eines Passwort-Managers auf Ihrem Gerät, beispielsweise der Open-Source-Lösung KeePass.
Ein Vorteil von PuTTY ist die Möglichkeit, mehrere Verbindungen als Sitzungen zu speichern. Weitere Informationen finden Sie unten im Abschnitt „Verwalten mehrerer SSH-Schlüssel auf Ihrem lokalen Rechner“.
Mehr über SSH-Verbindungen erfahren Sie in unseren Anleitungen für Einsteiger und in unserer SSH-Einführung.
Hinzufügen von SSH-Schlüsseln zu Ihrem Server
Übertragung von öffentlichen Schlüsseln, die auf GNU/Linux-, MacOS- oder BSD-basierten Systemen erstellt wurden
Wenn Sie Ihre SSH-Schlüsselpaare auf einem GNU/Linux-, MacOS- oder BSD-basierten System erstellt haben, können Sie den Befehl ssh-copy-id verwenden, um die öffentlichen Schlüssel zu Ihrem Server hinzuzufügen.
Das Tool ssh-copy-id kopiert die öffentlichen Schlüssel in die Datei ~/.ssh/authorized_keys auf dem angegebenen Remote-Server und erstellt die Datei bei Bedarf automatisch in diesem Verzeichnis.
ssh-copy-id user@IP_ADDRESSStandardmäßig versucht ssh-copy-id, alle öffentlichen Schlüssel in das lokale Benutzerverzeichnis ~/.ssh zu verschieben. Um einen öffentlichen Schlüssel hinzuzufügen, können Sie diese Schlüsseldatei mit der Option -i gefolgt vom Pfad zur Datei angeben:
ssh-copy-id -i ~/.ssh/KeyFileName user@IP_ADDRESS
Beispiel:
ssh-copy-id -i ~/.ssh/VPS_rsa.pub [email protected]
Sie werden zur Eingabe Ihres Benutzerpassworts aufgefordert. Bei erfolgreicher Anmeldung erhalten Sie eine Meldung ähnlich der untenstehenden Abbildung.
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'user@server-ip'"
and check to make sure that only the key(s) you wanted were added.Sollten Sie stattdessen eine Fehlermeldung erhalten, können Sie Ihre öffentlichen Schlüssel jederzeit manuell hinzufügen, indem Sie die unten beschriebenen Schritte befolgen.
Aus Sicherheitsgründen und als bewährte Vorgehensweise sollte dasselbe Schlüsselpaar nicht von mehreren Benutzern verwendet werden. Da jeder Benutzer auf GNU/Linux-Systemen seine eigene Datei `authorized_keys` im Verzeichnis `~/.ssh/` besitzt, können Sie den Befehl `ssh-copy-id` wie oben gezeigt verwenden und nach der Erstellung des Schlüsselpaares den Dateinamen `KeyFileName` und den Benutzer zuweisen.
Manuelles Hinzufügen öffentlicher Schlüssel zum Server
Stellen Sie eine Verbindung zu Ihrem Server her und vergewissern Sie sich, dass Sie sich im Verzeichnis $HOME Ihres Benutzers befinden. Erstellen Sie den Ordner .ssh (falls er noch nicht existiert):
mkdir ~/.ssh
Um den Schlüssel für den aktuellen Benutzer zu speichern, öffnen (oder erstellen) Sie die Datei authorized_keys mit Ihrem bevorzugten Texteditor (in diesem Beispiel wird nano verwendet):
nano ~/.ssh/authorized_keys
Fügen Sie Ihren öffentlichen Schlüssel in diese Datei ein. Speichern Sie die Datei und schließen Sie den Editor. Starten Sie Ihren Server neu (sudo reboot) oder starten Sie den OpenSSH-Dienst mit einem der folgenden Befehle neu (der entsprechende Befehl kann je nach Betriebssystem variieren):
sudo systemctl restart ssh
sudo systemctl restart sshd
Um sicherzustellen, dass Ihr Schlüssel korrekt eingerichtet ist, stellen Sie mit dem folgenden Befehl eine Verbindung zu Ihrem Server her. Ersetzen Sie «user» durch den Benutzernamen, für den die Schlüssel erstellt wurden, und «IP_ADDRESS» durch die IP-Adresse (oder den Hostnamen) des Servers, auf den Sie zugreifen möchten:
ssh user@IP_ADDRESS
Beispiel:
Hinzufügen zusätzlicher öffentlicher Schlüssel zu Ihrem Server
Um SSH-Schlüssel für weitere Benutzer hinzuzufügen, die Zugriff auf Ihren Server erhalten sollen, wiederholen Sie die Schritte zur Schlüsselerstellung. Verwenden Sie dabei den entsprechenden Ordner „$HOME“ oder das Windows-Benutzerverzeichnis des jeweiligen Benutzers, um die SSH-Schlüssel zu erstellen und zu speichern (oder führen Sie die Befehle auf dem Rechner dieser Person aus). Fügen Sie anschließend den neuen öffentlichen Schlüssel wie oben beschrieben in der Datei „authorized_keys“ zum Server hinzu.
Entfernen der öffentlichen Schlüssel von Ihrem Server
Öffnen Sie die Datei authorized_keys wie oben beschrieben und löschen Sie die Schlüsselzeichenfolge für den Benutzer, dessen Zugriff widerrufen wurde.
Speichern Sie die Datei und beenden Sie den Editor.
Verwalten Sie mehrere SSH-Schlüssel auf Ihrem lokalen Rechner.
Möglicherweise möchten Sie mehrere SSH-Schlüsselpaare verwenden, um Verbindungen zu verschiedenen Remote-Hosts herzustellen. (Wenn Sie PuTTY verwenden, fahren Sie mit dem entsprechenden Abschnitt weiter unten fort.)
Da alle Schlüssel im .ssh-Ordner auf Ihrem lokalen Rechner abgelegt werden müssen, müssen die Dateinamen unterschiedlich sein. Wenn Sie ein neues Schlüsselpaar erstellen und zur Angabe eines Dateinamens aufgefordert werden, wählen Sie einen Namen Ihrer Wahl. Verwenden Sie beispielsweise den Namen Ihres Servers.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): KeyFileName_rsa
Your identification has been saved in /home/user/.ssh/KeyFileName_rsa.
Your public key has been saved in /home/user/.ssh/KeyFileName_rsa.pub.Beim Verbindungsaufbau zum entsprechenden Server muss neben den Benutzer- und Serverdetails auch der Name der Schlüsseldatei angegeben werden:
ssh -i ~/.ssh/KeyFileName user@IP_ADDRESS
Beispiel:
ssh -i ~/.ssh/myVPS_rsa [email protected]
Wie in den vorherigen Abschnitten erwähnt, funktionieren dieselben Anweisungen auch auf dem Windows-Client. Ersetzen Sie einfach ~/ durch den Pfad zu Ihrem Windows-Benutzerordner, standardmäßig C:\Users\WindowsBenutzername\. (Beispiel: ssh -i C:\Users\Benutzername\.ssh/myVPS_rsa [email protected])
Verwendung der “config”-Datei.
Alternativ zur Verwendung der Option `-i` bei jeder Bearbeitung der Datei `config` im Ordner `~/.ssh` (bzw. `\Users\Username\.ssh` unter Windows) können Sie damit Details für verschiedene Verbindungen konfigurieren (Benutzername, Port, Schlüsseldatei, optionale Parameter usw.).
Wenn diese Datei im Ordner .ssh existiert, enthält sie wahrscheinlich bereits Informationen. Erstellen Sie je nach Ihrer Umgebung zunächst eine Sicherungskopie der Originaldatei.
Beispiel für den Inhalt des Ordners .ssh:
ls ~/.ssh/
config id_rsa id_rsa.pub known_hosts known_hosts.old
Mithilfe der Konfigurationsdatei lassen sich neben den Standardwerten auch mehrere SSH-Verbindungen mit ihren jeweiligen Parametern speichern. Die vollständige Ausschöpfung des Potenzials dieser Datei kann etwas knifflig sein, da sie sich vor allem an erfahrene Benutzer richtet, die regelmäßig mehrere Server verwalten.
Nachfolgend ein einfaches Beispiel zur Konfiguration einer SSH-Verbindung zu einem VPS.
Öffnen Sie die Datei und fügen Sie die folgenden Zeilen oben ein:
Host vps
HostName 203.0.113.100
IdentityFile ~/.ssh/myVPS_rsaAnschließend können Sie sich mit dem VPS über den von Ihnen definierten Alias „Host“ verbinden:
ssh ubuntu@vps
Im vorherigen Beispiel wurden lediglich die Server-IP-Adresse und die Schlüsseldatei angegeben, es können jedoch weitere Details hinzugefügt werden. Um eine SSH-Verbindung zum zweiten Server mit dem Benutzernamen “rocky”, dem geänderten SSH-Port “49160” und dem privaten Schlüssel in der Datei “myserver_rsa” zu konfigurieren, erweitern Sie den Inhalt der Datei wie in diesem Beispiel gezeigt:
Host vps
HostName 203.0.113.100
IdentityFile ~/.ssh/myVPS_rsa
Host dedicated_server
HostName 203.0.113.101
User rocky
Port 49160
IdentityFile ~/.ssh/myserver_rsaSie können sich dann mit diesem Server verbinden, indem Sie Folgendes eingeben:
ssh dedicated_serverWeitere Informationen finden Sie in der entsprechenden Manpage.
Verwendung von PuTTY
Wenn Sie die Anweisungen im Abschnitt "Erstellen eines SSH-Schlüsselpaars mit PuTTY" und "Hinzufügen von SSH-Schlüsseln zu Ihrem Server" befolgt haben, verfügen Sie über ein Schlüsselpaar, mit dem Sie eine Verbindung zu Ihrem Server herstellen können.
PuTTY kann die Anmeldeinformationen und Parameter einer SSH-Verbindung als Sitzung speichern. Dadurch können Sie sich auch mit verschiedenen Servern über unterschiedliche Schlüssel verbinden.
Öffnen Sie PuTTY und erweitern Sie im linken Menü den Unterabschnitt SSH. Klicken Sie anschließend auf „Authentifizierung und Anmeldeinformationen“.
Klicken Sie auf die Schaltfläche „Durchsuchen“ und wählen Sie die PuTTY-Privatschlüsseldatei (keyfile.ppk) aus dem Ordner aus, in dem Sie sie gespeichert haben.
Die Schlüsseldatei ist nun der aktuellen SSH-Sitzung zugeordnet. Gehen Sie im linken Menü auf „Sitzung“ und geben Sie Ihre Anmeldedaten für den Server ein (Benutzername@IPv4-Adresse).
Geben Sie im Feld „Gespeicherte Sitzungen“ einen Namen für diese Verbindung ein und klicken Sie auf „Speichern“, um sie der Liste hinzuzufügen.
Ab sofort können Sie auf diesen Sitzungseintrag klicken und eine Verbindung zu Ihrem Server herstellen. Klicken Sie auf „Öffnen“, um die Verbindung zu testen. Falls Sie die Schlüsseldatei mit einer Passphrase geschützt haben, müssen Sie diese jetzt eingeben.
Um eine weitere Serververbindung zu konfigurieren, wiederholen Sie die Schritte:
- Erstelle das Schlüsselpaar.
- Fügen Sie den öffentlichen Schlüssel zu Ihrem Server hinzu.
- Geben Sie die Serverdetails ein und fügen Sie die Schlüsseldatei in PuTTY hinzu.














