Eine Verbindung zu einem server mit SSH und einem pem / Schlüssel mit golang
Ich versuche, die Verbindung zu einem amazon AWS linux-server mit einem Schlüssel mit Hilfe der [- ssh -] [1] - Paket von Go Programmiersprache. Jedoch ist der Paket-Dokumentation ist ein bisschen kryptisch/verwirrend. Weiß jemand, wie man die Verbindung über ssh mit einem key-oder zumindest dann, wenn es möglich ist ? Was mich stört ist, dass in den [Dial][3] Beispiel es sagt
//An SSH client is represented with a ClientConn. Currently only
//the "password" authentication method is supported.
Ich wollen im Grunde imitieren die ssh-i x.pem [email protected] Verhalten und einen Befehl ausführen, innerhalb des Servers ( z.B. whoami
)
- Panik bedeutet, Sie sind ignorieren ein Fehler irgendwo (oder die Einstellung ein aufschieben vor der überprüfung ein Fehler). brauchen wir etwas code, um zu wissen, was Sie tun.
- Ich habe einige code. Ich denke ich habe alle Fehler. Aufschieben, um die Sitzung zu schließen wurde gesetzt, nachdem die Fehlerüberprüfung
- Ihre Panik ist, weil Sie fordern
defer session.Close()
auf, wo die session ist null.t.Error(err)
nicht wieder zu früh.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
ssh.PublicKeys
ein, um eine Liste derssh.Signers
in einessh.AuthMethod
. Sie könnenssh.ParsePrivateKey
zu bekommenSigner
von der pem-bytes, oder wenn Sie brauchen, um die Verwendung einer rsa -, dsa-oder ecdsa privaten Schlüssel, können Sie diese zussh.NewSignerFromKey
.Hier ist ein Beispiel konkretisiert ein bisschen mit dem Agent-Unterstützung (da ein agent ist in der Regel der nächste Schritt, nachdem Sie sich einfach mit einem Schlüssel-Datei).
ParsePrivateKey
zu bekommen, ein Unterzeichner von der pem-bytes.agent
? es scheint deklariert, aber nicht verwendet habe, da ichsigners, err := ssh.ParsePrivateKey(cl.Key)
Hier ist ein Beispiel zum ausführen ls aus der Ferne mit Ihr "Klartext private key file".