Documentation ¶
Overview ¶
Package ssh provides a GOlang library for copying files and running commands over SSH
Index ¶
- Constants
- func EncodePrivateKey(private *rsa.PrivateKey) []byte
- func EncodePublicKey(public *rsa.PublicKey) ([]byte, error)
- func EncodeSSHKey(public *rsa.PublicKey) ([]byte, error)
- func GenerateKey(bits int) (*rsa.PrivateKey, *rsa.PublicKey, error)
- func MakePrivateKeySignerFromBytes(buffer []byte) (ssh.Signer, error)
- func MakePrivateKeySignerFromFile(key string) (ssh.Signer, error)
- func ParsePublicKeyFromFile(keyFile string) (*rsa.PublicKey, error)
- func RunSSHCommand(cmd, user, host string, signer ssh.Signer) (string, string, int, error)
- type SSHKey
- type SSHTunnelList
Constants ¶
const RSABitSize = 2048
Variables ¶
This section is empty.
Functions ¶
func EncodePrivateKey ¶
func EncodePrivateKey(private *rsa.PrivateKey) []byte
func GenerateKey ¶
func RunSSHCommand ¶
RunSSHCommand returns the stdout, stderr, and exit code from running cmd on host as specific user, along with any SSH-level error. If user=="", it will default (like SSH) to os.Getenv("USER")
Types ¶
type SSHKey ¶
type SSHKey struct { PublicKey []byte `json:"publicKey,omitempty"` PrivateKey []byte `json:"privateKey,omitempty"` AwsFingerprint string `json:"awsFingerprint,omitempty"` OpensshFingerprint string `json:"opensshFingerprint,omitempty"` }
func NewSSHKeyPair ¶
Source: https://github.com/flynn/flynn/blob/master/pkg/sshkeygen/sshkeygen.go This generates a single RSA 2048-bit SSH key AWS Key pair: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#verify-key-pair-fingerprints https://forums.aws.amazon.com/thread.jspa?messageID=386670&tstart=0
From PUB key: ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 | openssl pkey -pubin -outform DER | openssl md5 -c From PRIV key: openssl rsa -in ~/.ssh/id_rsa -pubout -outform DER | openssl md5 -c
func ParseSSHKeyPair ¶
type SSHTunnelList ¶
type SSHTunnelList struct {
// contains filtered or unexported fields
}
func NewSSHTunnelList ¶
func NewSSHTunnelList(user, keyfile string, healthCheckURL *url.URL, stopChan chan struct{}) *SSHTunnelList
func (*SSHTunnelList) Update ¶
func (l *SSHTunnelList) Update(addrs []string)
Update reconciles the list's entries with the specified addresses. Existing tunnels that are not in addresses are removed from entries and closed in a background goroutine. New tunnels specified in addresses are opened in a background goroutine and then added to entries.