Ich versuche, per SSH von einem Digital Ocean-Droplet zu einem zweiten Droplet zu gelangen.
Hier ist mein Setup:
Setup und Konfiguration
- Droplet 1: MyTest (Ubuntu 16.04 512 MB RAM)
- Droplet 2: RemoteHost (Ubuntu 16.04 512 MB RAM)
- Lokales System (Windows 7 mit Putty, PuttyGen)
Basierend auf den Anweisungen im VideoHier, ich habe PuttyGen verwendet, um ein öffentliches und privates Schlüsselpaar auf meinem lokalen System (Windows 7) zu generieren. Ich habe den öffentlichen Schlüssel nicht gespeichert. Ich habe den privaten Schlüssel auf meinem lokalen System (Windows 7) gespeichert. Ich habe den öffentlichen Schlüssel zum MyTest-Droplet hinzugefügt. Ich kann jetzt Putty verwenden, um von meinem lokalen System (Windows 7) aus per SSH auf MyTest zuzugreifen, ohne ein Passwort einzugeben, genau wie im Video gezeigt.
Problem
Jetzt möchte ich per SSH vom MyTest-Droplet in das RemoteHost-Droplet wechseln.
Schritt 1.
Ich habe das RemoteHost-Droplet erstellt und denselben öffentlichen Schlüssel wie für MyTest angehängt. Daher haben beide Droplets MyTest und RemoteHost denselben öffentlichen Schlüssel.
Schritt 2.
Von meinem lokalen Computer (Windows 7) aus habe ich per SSH eine Verbindung zum MyTest-Droplet mit PuTTy hergestellt.
Schritt 3.
Dann habe ich (über die MyTest-Droplet-Befehlszeile) versucht, mit Folgendem per SSH auf das RemoteHost-Droplet zuzugreifen:
root@MyTest:~# ssh [email protected]
Danach erhalte ich folgende Fehlermeldung
root@MyTest:~# ssh root@xxx
The authenticity of host 'xxx (xxx)' can't be established.
ECDSA key fingerprint is SHA256:yyy.
Are you sure you want to continue connecting (yes/no)?
Ich zeige den Fehler auch im obigen Screenshot.
Frage:
Ist es möglich, per SSH von einem Digital Ocean-Droplet zu einem anderen Digital Ocean-Droplet zu wechseln?
Antwort1
Ja, aber Sie müssen eine Kopie Ihres privaten Schlüssels auf MyTest speichern. Der SSH-Client auf MyTest kann Ihren privaten Schlüssel auf Ihrem PC nicht lesen.
Allerdings sollten Sie für die Verbindung von MyTest zu RemoteHost wirklich ein anderes Schlüsselpaar verwenden, da der private Schlüssel, den Sie auf MyTest eingeben, von jedem kopiert werden kann, der Zugriff auf dieses System hat (Personen, mit denen Sie den Server teilen, vielleicht DO-Mitarbeiter ...) und zum Zugriff auf andere Systeme verwendet werden kann, auf die Sie mit diesem Schlüssel zugreifen. Generieren Sie also auf MyTest ein zweites Schlüsselpaar und kopieren Sie dessen öffentlichen Schlüssel auf RemoteHost (das über zwei öffentliche Schlüssel verfügt, den von Ihrem PC-Paar und den vom MyTest-Paar). Anschließend können Sie direkt von Ihrem PC (mit Ihrem lokalen privaten Schlüssel) oder von MyTest (mit dem privaten MyTest-Schlüssel) eine Verbindung zu RemoteHost herstellen.
Antwort2
Die Antwort von @xenoid hat funktioniert! Ich habe mich entschieden, ein anderes öffentlich-privates Schlüsselpaar für die Verbindung zu verwendenMein TestZuRemote-Host.
Hier ist, was ich tun musste (manueller Ansatz unter Verwendung dieser Quellen -Hierund Schritt 4 vonHier), um dem Vorschlag von @xenoid zu folgen:
Auf dem 1. Droplet (MyTest)
1.
root@MyTest:~# ssh-keygen -t rsa -N '' -f keyfilename.rsa
root@MyTest:~# cat ~/keyfilename.rsa.pub
Die erste Zeilegeneriert ein Schlüsselpaar ohne Passwort. Die zweite Zeile zeigt den Inhalt der PUBLIC-Schlüsseldatei.
2. Wählen Sie alle Zeichen in der PUBLIC-Schlüsseldatei aus (mit dem Mauszeiger) und drücken Sie Ctrl+, Cum den PUBLIC-Schlüssel zu kopieren.
3.
root@MyTest:~# exit
Auf dem 2. Droplet (RemoteHost)
1.
root@RemoteHost:~# chmod 700 ~/.ssh
root@RemoteHost:~# chmod 600 ~/.ssh/authorized_keys
root@RemoteHost:~# nano ~/.ssh/authorized_keys
Diese Datei enthält bereits den öffentlichen Schlüssel des öffentlich-privaten Paares, das von meinem lokalen Computer generiert und dem Droplet bei seiner Erstellung hinzugefügt wurde.
2. Verwenden Sie dieNano-Editor, um den PUBLIC-Schlüssel einzufügen. Drücken Sie , Enterum eine neue Zeile in dieser Datei zu beginnen
3. Drücken Sie Ctrl+ V, um den privaten Schlüssel einzufügen
4. Drücken Sie Ctrl+ X, y, Enterum zu speichern und mit demselben Dateinamen zu beenden
5.
root@RemoteHost:~# exit
Auf dem Ubuntu-Client (AnsibleFlex)
1.
root@MyTest:~# ssh [email protected] -i ~/keyfilename.rsa
wo 123.456.789.10
ist die öffentliche IP-Adresse desRemote-Host. Dies öffnet die SSH-Eingabeaufforderung im /root
Verzeichnis aufRemote-Host, nach Bedarf.
Danke, @xenoid!