This section is empty.


This section is empty.


func EncodePrivateKey

func EncodePrivateKey(private *rsa.PrivateKey) []byte

func EncodePublicKey

func EncodePublicKey(public *rsa.PublicKey) ([]byte, error)

func EncodeSSHKey

func EncodeSSHKey(public *rsa.PublicKey) ([]byte, error)

func GenerateKey

func GenerateKey(bits int) (*rsa.PrivateKey, *rsa.PublicKey, error)

func MakePrivateKeySignerFromBytes

func MakePrivateKeySignerFromBytes(buffer []byte) (ssh.Signer, error)

func MakePrivateKeySignerFromFile

func MakePrivateKeySignerFromFile(key string) (ssh.Signer, error)

func ParsePublicKeyFromFile

func ParsePublicKeyFromFile(keyFile string) (*rsa.PublicKey, error)

func RunSSHCommand

func RunSSHCommand(cmd, user, host string, signer ssh.Signer) (string, string, int, error)

    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")


    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) Dial

    func (l *SSHTunnelList) Dial(ctx context.Context, net, addr string) (net.Conn, error)

    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.

      Source Files