Wie ssh von einer ec2-Instanz zu einer anderen?

Ich habe zwei EC2-Instanzen auf AWS erstellt. Ich habe für jeden von ihnen ein Schlüsselpaar erstellt. Ich heruntergeladen die .pem private Schlüssel und wandelte sie in .ppk Format. Ich kann mit PuTTY und deren eine Verbindung zu jeder meiner ec2-Instanzen herstellen .privater ppk-Schlüssel. Aber wie SSH ich von einer meiner ec2-Instanzen zur anderen? Ich kann das öffentliche DNS von einem von beiden von dem anderen pingen. Aber wenn ich ssh von einem zum anderen versuche, bekomme ich:

Erlaubnis verweigert (publickey).

Author: kenorb, 2016-10-17

3 answers

Methode 1-Verwenden Sie dieselben Schlüssel auf den Servern:

Konvertieren Sie die Schlüssel in das openssh-Format und laden Sie die privaten Schlüssel auf die Server hoch. Wenn Sie ssh zum Zielhost senden, geben Sie die private Schlüsseldatei an:

ssh -i mykey.pem private.ip.of.other.server

Methode 2-Neue Schlüssel erstellen

Bei jedem Serverlauf:

ssh-keygen

Drücken Sie enter enter. Sie haben zwei Dateien:

.ssh/id_rsa
.ssh/id_rsa.pub

Auf Server A kopieren und kopieren Sie den öffentlichen Schlüssel in die Zwischenablage:

cat ~/.ssh/id_rsa.pub
[select and copy to your clipboard]

Ssh in Server B, und fügen Sie den Inhalt, dass der es Datei authorized_keys:

cat >> ~/.ssh/authorized_keys
[paste your clipboard contents]
[ctrl+d to exit]

Jetzt ssh von server A:

ssh -i ~/.ssh/id_rsa private.ip.of.other.server
 9
Author: matiu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 12:41:41

Es gibt eine dritte und IMHO die beste Lösung so genannte ssh agent Forwarding:

  • auf dem lokalen Computer konfigurieren ~/.ssh/config, durch Hinzufügen des folgenden Abschnitts:
Host <ip-or-name-of-A-server>
  ForwardAgent yes
  • Ich nehme an, auf Server A und B haben Sie Ihr lokales ~/.ssh/id_rsa.pub hinzugefügt zu Server ~/.ssh/authorized_keys

Während der Arbeit an Server A können Ihre Schlüssel in weiterer ssh-Kommunikation verwendet werden-zB:

  • Verbindung zu einem anderen Server mit SSH - Client-In dieser Fall an Server B,
  • scp (sichere Kopie),
  • git - Sie können mit Ihrer lokalen Identität in Ihre Remote-Git-Repositorys ziehen/pushen
  • etc.

Um zu überprüfen, ob dies funktioniert:

  • Verbindung zum Server A herstellen
  • Überprüfen Sie, ob eine Socket-Verbindung für den Schlüsselaustausch besteht, indem Sie SSH_AUTH_SOCK env var:
set|grep SSH_AUTH_ # output should be something like this:
SSH_AUTH_SOCK=/tmp/ssh-sEHiRF4hls/agent.12042

Anmerkungen:

 6
Author: Robert Lujo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-07-25 14:41:48

Eine neue AWS-Lösung für das Problem.

EC2 Instanz Verbinden

Hier ist ein Blogbeitrag für dasselbe:

AWS-Blog -

Bitte beachten Sie:

Die öffentlichen SSH-Schlüssel sind in den Instanzmetadaten nur für 60 Sekunden einmalig verfügbar. Um eine erfolgreiche Verbindung zur Instanz herzustellen, müssen Sie innerhalb dieses Zeitfensters eine Verbindung mit SSH herstellen. Da die Schlüssel ablaufen, müssen Sie diese Schlüssel nicht direkt verfolgen oder verwalten, wie Sie es getan haben zuvor.

 0
Author: Tibor Szalai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-09-15 16:35:03