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 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")
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 NewSSHTunnel(user, keyfile, host string) (*SSHTunnel, error)
func NewSSHTunnelFromBytes ¶
func NewSSHTunnelFromBytes(user string, privateKey []byte, host string) (*SSHTunnel, error)
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.