Ich versuche, eine Verbindung zu einer Windows Azure-Instanz mit Fabric herzustellen, aber trotz der Konfiguration von ssh conection zur Ausführung von Befehlen fragt Fabric nach einem Passwort.
Dies ist meine Fabric-Datei:
%Vor%Ich führe es als:
%Vor%oder
%Vor%Aber nichts hat funktioniert, es fragt nach dem Benutzerpasswort, obwohl ich es richtig eingegeben habe.
%Vor%Wenn ich versuche, direkt mit ssh zu verbinden, funktioniert es perfekt.
%Vor%Ich habe die in anderen Fragen gegebenen Ratschläge ausprobiert ( q1 q2 q3 ) aber nichts funktioniert.
Irgendeine Idee, was ich falsch mache?
Danke
Schließlich habe ich festgestellt, dass das Problem auf die Generierung des öffentlich-privaten Schlüsselpaars zurückzuführen ist.
Ich habe die Schritte in windows azure guide , dort werden die Schlüssel mit openssl generiert, so dass der Prozess einen öffentlichen Schlüssel in einer PEM-Datei speichert, die Sie während des Erstellungsprozesses in Ihre Instanz hochladen müssen.
Das Problem ist, dass dieser private Schlüssel von paramiko nicht korrekt erkannt wird, so dass Fabric nicht funktioniert. Wenn Sie versuchen, eine SSH-Verbindung mit Paramiko von Python-Interpreter zu öffnen:
%Vor%Gibt mir den Fehler:
%Vor%Wenn die Schlüsseldatei nicht verschlüsselt ist.
Um dies zu lösen, habe ich das Schlüsselpaar mit openssh erstellt und dann den öffentlichen Schlüssel in pem konvertiert, um ihn in azure:
zu laden %Vor%Das hat das Problem gelöst.
Um die ssh-Verbindungen von Fabric zu debuggen, fügen Sie diese Zeilen zu Ihrer Fab-Datei hinzu:
%Vor%Dies wird alle Debug-Meldungen von paramiko ausgeben. Paramiko ist die ssh-Bibliothek, die Fabric verwendet.
Beachten Sie, dass seit Fabric 1.4 Sie ausdrücklich die Verwendung aktivieren müssen SSH-Konfiguration:
%Vor% (Hinweis: Ich bin ziemlich sicher absolut sicher, dass meine Fabfile mit Fabric & gt; 1.5 ohne diese Option gearbeitet hat, aber jetzt, wo ich nicht auf 1.10 aktualisiert habe).