Documentation
¶
Index ¶
- Constants
- Variables
- type Client
- type Credentials
- type KeyPair
- type MockSSHClient
- func (c *MockSSHClient) Connect() error
- func (c *MockSSHClient) Disconnect()
- func (c *MockSSHClient) Download(src io.WriteCloser, dst string) error
- func (c *MockSSHClient) Run(command string, stdout io.Writer, stderr io.Writer) error
- func (c *MockSSHClient) SetSSHPassword(s string)
- func (c *MockSSHClient) SetSSHPrivateKey(s string)
- func (c *MockSSHClient) Upload(src io.Reader, dst string, mode uint32) error
- func (c *MockSSHClient) Validate() error
- func (c *MockSSHClient) WaitForSSH(maxWait time.Duration) error
- type Options
- type SSHClient
- func (client *SSHClient) Connect() error
- func (client *SSHClient) Disconnect()
- func (client *SSHClient) Download(dst io.WriteCloser, remotePath string) error
- func (client *SSHClient) Run(command string, stdout io.Writer, stderr io.Writer) error
- func (client *SSHClient) SetSSHPassword(s string)
- func (client *SSHClient) SetSSHPrivateKey(s string)
- func (client *SSHClient) Upload(src io.Reader, dst string, mode uint32) error
- func (client *SSHClient) Validate() error
- func (client *SSHClient) WaitForSSH(maxWait time.Duration) error
Constants ¶
const ( // PasswordAuth represents password based auth. PasswordAuth = "password" // KeyAuth represents key based authentication. KeyAuth = "key" // Timeout for connecting to an SSH server. Timeout = 60 * time.Second )
Variables ¶
var ( // ErrInvalidUsername is returned when the username is invalid. ErrInvalidUsername = errors.New("A valid username must be supplied") // ErrInvalidAuth is returned when the username is invalid. ErrInvalidAuth = errors.New("Invalid authorization method: missing password or key") // ErrSSHInvalidMessageLength is returned when the scp implementation gets an invalid number of messages. ErrSSHInvalidMessageLength = errors.New("Invalid message length") // ErrTimeout is returned when a timeout occurs waiting for sshd to respond. ErrTimeout = errors.New("Timed out waiting for sshd to respond") // ErrKeyGeneration is returned when the library fails to generate a key. ErrKeyGeneration = errors.New("Unable to generate key") // ErrValidation is returned when we fail to validate a key. ErrValidation = errors.New("Unable to validate key") // ErrPublicKey is returned when gossh fails to parse the public key. ErrPublicKey = errors.New("Unable to convert public key") // ErrUnableToWriteFile is returned when the library fails to write to a file. ErrUnableToWriteFile = errors.New("Unable to write file") // ErrNotImplemented is returned when a function is not implemented (typically by the Mock implementation). ErrNotImplemented = errors.New("Operation not implemented") )
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
Connect() error
Disconnect()
Download(src io.WriteCloser, dst string) error
Run(command string, stdout io.Writer, stderr io.Writer) error
Upload(src io.Reader, dst string, mode uint32) error
Validate() error
WaitForSSH(maxWait time.Duration) error
SetSSHPrivateKey(string)
SetSSHPassword(string)
}
Client represents an interface for abstracting common ssh operations.
type Credentials ¶
Credentials supplies SSH credentials.
type KeyPair ¶
KeyPair represents a Public and Private keypair.
func NewKeyPair ¶
NewKeyPair generates a new SSH keypair. This will return a private & public key encoded as DER.
func (*KeyPair) Fingerprint ¶
Fingerprint calculates the fingerprint of the public key
func (*KeyPair) ReadFromFile ¶
ReadFromFile reads a keypair from files.
type MockSSHClient ¶
type MockSSHClient struct {
MockConnect func() error
MockDisconnect func()
MockDownload func(src io.WriteCloser, dst string) error
MockRun func(command string, stdout io.Writer, stderr io.Writer) error
MockUpload func(src io.Reader, dst string, mode uint32) error
MockValidate func() error
MockWaitForSSH func(maxWait time.Duration) error
MockSetSSHPrivateKey func(string)
MockSetSSHPassword func(string)
}
MockSSHClient represents a Mock Client wrapper.
func (*MockSSHClient) Connect ¶
func (c *MockSSHClient) Connect() error
Connect calls the mocked connect.
func (*MockSSHClient) Disconnect ¶
func (c *MockSSHClient) Disconnect()
Disconnect calls the mocked disconnect.
func (*MockSSHClient) Download ¶
func (c *MockSSHClient) Download(src io.WriteCloser, dst string) error
Download calls the mocked download.
func (*MockSSHClient) SetSSHPassword ¶
func (c *MockSSHClient) SetSSHPassword(s string)
SetSSHPassword calls the mocked SetSSHPassword
func (*MockSSHClient) SetSSHPrivateKey ¶
func (c *MockSSHClient) SetSSHPrivateKey(s string)
SetSSHPrivateKey calls the mocked SetSSHPrivateKey
func (*MockSSHClient) Validate ¶
func (c *MockSSHClient) Validate() error
Validate calls the mocked validate.
func (*MockSSHClient) WaitForSSH ¶
func (c *MockSSHClient) WaitForSSH(maxWait time.Duration) error
WaitForSSH calls the mocked WaitForSSH
type SSHClient ¶
type SSHClient struct {
Creds *Credentials
IP net.IP
Port int
Options Options
// contains filtered or unexported fields
}
SSHClient provides details for the SSH connection.
func (*SSHClient) Disconnect ¶
func (client *SSHClient) Disconnect()
Disconnect should be called when the ssh client is no longer needed, and state can be cleaned up
func (*SSHClient) Download ¶
func (client *SSHClient) Download(dst io.WriteCloser, remotePath string) error
Download downloads a file via SSH (SCP)
func (*SSHClient) SetSSHPassword ¶
SetSSHPassword sets the SSH password on the clients credentials.
func (*SSHClient) SetSSHPrivateKey ¶
SetSSHPrivateKey sets the private key on the clients credentials.