Fehler beim Versuch, mit Paramiko eine SSH in eine neue EC2-Instanz zu bringen

8

Ich arbeite an einem Skript, das eine neue EC2-Instanz mit boto hochfährt und den Paramiko-SSH-Client verwendet, um Remote-Befehle auf der Instanz auszuführen. Aus welchem ​​Grund auch immer, der Paramiko-Client kann nicht verbunden werden, bekomme ich den Fehler:

%Vor%

Ich kann manuell mit der gleichen Schlüsseldatei und dem gleichen Benutzer ssh. Ist jemand mit Paramiko auf Probleme gestoßen? Mein vollständiger Code ist unten. Danke.

%Vor%     
rr. 17.05.2011, 02:17
quelle

4 Antworten

10

Ich habe das durch Versuch und Irrtum herausgefunden. Obwohl der Instanzstatus laut boto "läuft", gibt es eine Verzögerung für den Zeitpunkt, zu dem eine SSH-Verbindung tatsächlich zugelassen wird. Das Hinzufügen eines "time.sleep (30)" vor dem "ssh.connect (...)" scheint den Trick für mich zu machen, obwohl dies variieren kann.

    
rr. 17.05.2011, 04:17
quelle
2

Warum nicht stattdessen boto.manage.cmdshell verwenden?

%Vor%

(Code aus Zeile 152 in ec2_launch_instance.py )

Für verfügbare cmdshell -Befehle sehen Sie sich die SSHClient -Klasse von cmdshell an .py .

    
dbogdan 12.11.2012 14:35
quelle
1

Ich bin kürzlich auf dieses Problem gestoßen. Der "richtige" Weg wäre, zuerst eine close () zu initiieren und dann die Verbindung wieder zu öffnen. Bei älteren Versionen war close () jedoch defekt.

Bei dieser Version oder später sollte es behoben sein: Ссылка

"Richtige" Methode:

%Vor%     
Bryan York 12.06.2012 18:15
quelle
1

Um zu überprüfen, ob es ssh verfügbar ist, stellen Sie sicher, dass beide Status überprüft werden. Auf der Web-Oberfläche sieht das so aus:

Und mit boto3 (die ursprüngliche Frage, die boto verwendet wurde, aber es war vor 5 Jahren), können wir tun:

%Vor%     
Dichen 26.04.2016 02:50
quelle

Tags und Links