kubernetesk8s.io/kubernetes/pkg/ssh Index | Files

package ssh

import "k8s.io/kubernetes/pkg/ssh"

Index

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)

func (*SSHTunnel) Close

func (s *SSHTunnel) Close() error

func (*SSHTunnel) Dial

func (s *SSHTunnel) Dial(network, address string) (net.Conn, error)

func (*SSHTunnel) Open

func (s *SSHTunnel) Open() 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) Dial

func (l *SSHTunnelList) Dial(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

ssh.go

Version
v1.6.2
Published
Apr 19, 2017
Platform
js/wasm
Imports
24 packages
Last checked
38 seconds ago

Tools for package owners.