Documentation ¶
Index ¶
- 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 SSHTunnel
- type SSHTunnelList
Constants ¶
This section is empty.
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 SSHTunnel ¶
type SSHTunnel struct { Config *ssh.ClientConfig Host string SSHPort string // contains filtered or unexported fields }
TODO: Unit tests for this code, we can spin up a test SSH server with instructions here: https://godoc.org/golang.org/x/crypto/ssh#ServerConn
func NewSSHTunnel ¶
func NewSSHTunnelFromBytes ¶
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.
Click to show internal directories.
Click to hide internal directories.