Bei Servern, die kein öffentliches Netzwerk besitzen, kann eine SSH-Verbindung nur über ein privates Netzwerk hergestellt werden. Das heißt, Sie müssen sich zunächst mit einem Server verbinden, der eine öffentliche IP-Adresse besitzt. Wenn sich dieser Server in demselben privaten Netzwerk befindet wie Ihr Server ohne öffentliche IPs, können Sie sich anschließend über die private IP mit dem zweiten Server verbinden.
Ihr Gerät | Server mit öffentlicher IP | Server mit privater IP | ||
---|---|---|---|---|
Öffentliches Netzwerk | ⇾ | Öffentliches Netzwerk | ||
Privates Netzwerk | ⇾ | Privates Netzwerk |
Neben Ihrem Server mit privater IP benötigen Sie somit noch einen zweiten Server. Dieser zweite Server muss eine öffentliche IP besitzen und demselben privaten Netzwerk hinzugefügt worden sein, wie der Server ohne öffentliche IPs.
Sie benötigen also zwei Server, wie in diesem Beispiel:
Beachten Sie, dass beide Server demselben privaten Netzwerk hinzugefügt worden sein müssen.
In den ersten untenstehenden Schritten wird erklärt wie Sie sich erst mit Ihrem öffentlichen Server verbinden und anschließend von Ihrem öffentlichen Server mit Ihren privaten Server verbinden.
In den letzten beiden Schritten 6 und 7 wird erklärt, wie Sie die config
-Datei bearbeiten können, damit Sie sich künftig direkt mit Ihrem privaten Server verbinden können, ohne zuvor manuell eine Verbindung zu dem Server mit öffentlicher IP herstellen zu müssen. Stattdessen wird dieser Schritt dann automatisch im Hintergrund ausgeführt.
Nachdem die Server erstellt wurden, können Sie sich über SSH mit ihnen verbinden. Nutzten Sie dazu eine Kommandozeile.
-
Greifen Sie mit dem folgenden Befehl remote auf Ihren Server mit öffentlicher IP zu
Über IPv4 oder IPv6:
-
IPv4
$ ssh root@<203.0.113.1>
Ersetzen Sie den Abschnitt
<203.0.113.1>
mit der IPv4-Adresse Ihres eigenen Servers. -
IPv6
Den Cloud Servern wird bei IPv6-Adressen immer ein /64 Netzwerk zugewiesen. Standardmäßig weisen wir den Servern die erste Adresse dieses Netzwerks zu. Geben Sie beim Verbinden mit dem Server nicht das Netzwerk/64
als Endung an, sondern die erste Adresse1
.$ ssh root@<2001:db8:1234::1>
Ersetzen Sie den Abschnitt
<2001:db8:1234::1>
mit der IPv6-Adresse Ihres eigenen Servers.
Die IP-Adresse können Sie sich in der Cloud Console kopieren, indem Sie mit der Maus einmal direkt draufklicken.
Kommandozeilen-Warnung
Sollte eine Warnung wie diese erscheinen, kann yes angegeben werden.
The authenticity of host '<203.0.113.1> (<203.0.113.1>)' can't be established. ECDSA key fingerprint is SHA256:Jw/3FIJwpp3FIJw/3FIJw/3FppLVppmjWs. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Der in der Warnung angegebene Fingerprint wird lokal gespeichert und in Zukunft automatisch erkannt. Diesen Fingerprint können Sie in der folgenden Datei einsehen:
~/.ssh/known_hosts
Sobald Sie Ihren Server löschen, wird dieser Fingerprint ungültig.
-
-
Der nächste Schritt hängt davon ab, ob Sie beim Erstellen Ihres Servers einen SSH-Key angegeben haben oder nicht
-
SSH-Key
Wenn Sie kein zusätzliches Passwort festgelegt haben, sind keine weiteren Schritte notwendig. Sie sind automatisch mit Ihrem Server verbunden. Sollten Sie eines angegeben haben, dann geben Sie es jetzt ein. -
Kein SSH-Key
Nach dem Erstellen Ihres Servers haben Sie Ihr root-Passwort per E-Mail von uns erhalten. Bitte geben Sie dieses nun ein.
Beachten Sie, dass Passwörter bei der Eingabe in der Kommandozeile nicht sichtbar sind.
-
-
Passwort ändern
Wenn Sie sich das erste Mal per root-Passwort auf Ihrem Server anmelden, werden Sie dazu aufgefordert Ihr Passwort zu ändern.
Geben Sie dazu wie aufgefordert Ihr altes Passwort an und bestimmen Sie anschließend ein neues Passwort.
-
SSH-Key erstellen
Bevor Sie sich über die private IP mit Ihrem zweiten Server verbinden, können Sie einen SSH-Key hinterlegen.
Dieser Schritt kann optional übersprungen werden. In diesem Fall müssen Sie künftig immer ihr Passwort angeben.
-
Key erstellen
Führen Sie auf Ihrem Server mit öffentlicher IP folgenden Befehl aus, um einen SSH-Key des Typsed25519
zu erstellen:ssh-keygen -t ed25519
Führen Sie nun folgenden Befehl aus, um den öffentlichen Key des eben erstellten SSH-Key-Paares auf dem Server ohne öffentliche IPs zu hinterlegen:ssh-copy-id -i ~/.ssh/id_ed25519.pub root@<10.2.0.3>
Beachten Sie, dass
<10.2.0.3>
mit der privaten IP-Adresse Ihres eigenen Servers ohne öffentliche IPs ersetzt werden muss.Sobald der Befehl ausgeführt wurde, werden Sie aufgefordert das Passwort des root-Benutzers anzugeben. Dieses sollten Sie nach dem Erstellen des Servers per E-Mail erhalten haben.
Nun da der SSH-Key hinterlegt ist, können Sie sich künftig mit Ihrem Server ohne öffentliche IPs verbinden, ohne ein Passwort angeben zu müssen.
Weitere Informationen bezüglich SSH-Keys: Tutorial "SSH-Key einrichten"
-
-
Greifen Sie mit dem folgenden Befehl von Ihrem Server mit öffentlicher IP auf Ihren Server mit privater IP zu
$ ssh root@<10.2.0.3>
Ersetzen Sie den Abschnitt
<10.2.0.3>
mit der privaten IP Ihres eigenen Servers ohne öffentliche IPs.Die IP-Adresse können Sie sich in der Cloud Console kopieren, indem Sie mit der Maus einmal direkt draufklicken.
Sollte eine Warnung bezüglich host authenticity erscheinen, kann wieder yes angegeben werden.
Wenn Sie wie im Schritt 4 erklärt einen SSH-Key hinterlegt haben, sind Sie direkt mit Ihrem Server verbunden.
Wenn kein SSH-Key hinterlegt wurde, geben Sie nun Ihr Passwort an. Dieses sollten Sie nach dem Erstellen des Servers per E-Mail erhalten haben. -
Bearbeiten Sie die
config
-Datei auf Ihrem lokalen GerätNun da Sie die Schritte selbst einmal durchgeführt haben, können Sie die
config
-Datei so bearbeiten, dass die Verbindung automatisch als Zwischenschritt über den Server mit öffentlicher IP hergestellt wird. Dadurch können Sie künftig direkt den Server mit privater IP angeben, ohne dass Sie sich zuvor manuell mit ihrem Server mit öffentlicher IP verbinden müssen.Nutzen Sie zunächst die Tastenkombination
CTRL
+D
, um die Verbindung zu Ihrem Server mit privater IP zu beenden. Sie sollten nun wieder auf Ihrem Server mit öffentlicher IP sein.
Nutzen Sie erneut die TastenkombinationCTRL
+D
. Damit sollte nun die Verbindung zu Ihrem Server mit öffentlicher IP beendet werden und Sie sollten sich wieder auf Ihrem lokalen Gerät befinden.Der
config
-Datei können Einträge in folgendem Format hinzugefügt werden:Host <unique-name> HostName <IP-address> User <username> PreferredAuthentications <publickey/password>
Wenn ein solcher Eintrag besteht, können Sie anstelle von
ssh <username>@<IP-address>
schlicht den selbst festgelegten Namen angebenssh <unique-name>
, um eine Verbindung zum Server herzustellen.Der Eintrag kann zusätzlich noch um die Option "ProxyJump" erweitert werden. An dieser Stelle kann der
<unique-name>
eines anderen Eintrags angegeben werden. Die Verbindung wird dann nicht vom lokalen Gerät hergestellt, sondern von dem nach "ProxyJump" angegebenen Server. Da sich das lokale Gerät dafür zunächst mit dem unter ProxyJump angegebenen "Zwischenserver" verbinden muss, muss dieser ebenfalls einen Eintrag besitzen.Ihr lokales Gerät unique-name-1 unique-name-2 HostName 203.0.113.1 10.2.0.3 ProxyJump N/A unique-name-1 Wenn Sie
ssh unique-name-1
eingeben, verbindet sich Ihr lokales Gerät direkt mit203.0.113.1
.
Wenn Siessh unique-name-2
eingeben, verbindet sich Ihr lokales Gerät erst mit203.0.113.1
und anschließend von dort mit10.2.0.3
.Bearbeiten Sie auf Ihrem lokalen Gerät die
config
-Datei:nano ~/.ssh/config
Fügen Sie der untersten Zeile folgenden Text hinzu:
Host server-public-ip HostName 203.0.113.1 User root PreferredAuthentications publickey Host server-private-ip HostName 10.2.0.3 User root PreferredAuthentications publickey ProxyJump server-public-ip
Ersetzen Sie die IPs
203.0.113.1
und10.2.0.3
mit den IP-Adressen Ihrer eigenen Server. Wenn kein SSH-Key hinterlegt ist, geben Sie für "PreferredAuthentications" anstelle von "publickey" bitte "password" an.Sobald Sie fertig sind, können Sie die Datei mit
CTRL
+X
schließen, mitY
speichern und mitENTER
bestätigen.Durch den ersten Eintrag können Sie in Ihrer Kommandozeile künftig
ssh server-public-ip
ausführen, anstelle vonssh root@203.0.113.1
, um sich mit Ihrem Server mit öffentlicher IP zu verbinden.Durch den zweiten Eintrag können Sie in Ihrer Kommandozeile künftig
ssh server-private-ip
ausführen, um sich direkt mit Ihrem Server ohne öffentliche IPs zu verbinden. Da der Server mit öffentlicher IP unter "ProxyJump" angegeben wurde, wird die Verbindung im Hintergrund automatisch über den zweiten Server aufgebaut. -
Verbinden Sie sich mit nur einem Befehl mit Ihrem Server ohne öffentliche IPs
ssh server-private-ip
Sie sollten nun direkt mit Ihrem Server ohne öffentliche IPs verbunden sein, ohne zuvor manuell eine Verbindung zu Ihrem Server mit öffentlicher IP herstellen zu müssen. Um die Verbindung wieder zu schließen, nutzen Sie die Tastenkombination
CTRL
+D
.
Nächste Schritte: