Documentation ¶
Overview ¶
Package ssh allows to manage SSH connections and send commands through them.
Index ¶
- func CheckPrivateSshConnection(t *testing.T, publicHost Host, privateHost Host, command string) string
- func CheckPrivateSshConnectionE(t *testing.T, publicHost Host, privateHost Host, command string) (string, error)
- func CheckSshCommand(t *testing.T, host Host, command string) string
- func CheckSshCommandE(t *testing.T, host Host, command string) (string, error)
- func CheckSshConnection(t *testing.T, host Host)
- func CheckSshConnectionE(t *testing.T, host Host) error
- func Close(t *testing.T, closeable Closeable, ignoreErrors ...string)
- func NoOpHostKeyCallback(hostname string, remote net.Addr, key ssh.PublicKey) error
- func ScpFileTo(t *testing.T, host Host, mode os.FileMode, remotePath, contents string)
- func ScpFileToE(t *testing.T, host Host, mode os.FileMode, remotePath, contents string) error
- type Closeable
- type Host
- type JumpHostSession
- type KeyPair
- type SshConnectionOptions
- type SshSession
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckPrivateSshConnection ¶
func CheckPrivateSshConnection(t *testing.T, publicHost Host, privateHost Host, command string) string
CheckPrivateSshConnection attempts to connect to privateHost (which is not addressable from the Internet) via a separate publicHost (which is addressable from the Internet) and then executes "command" on privateHost and returns its output. It is useful for checking that it's possible to SSH from a Bastion Host to a private instance.
func CheckPrivateSshConnectionE ¶
func CheckPrivateSshConnectionE(t *testing.T, publicHost Host, privateHost Host, command string) (string, error)
CheckPrivateSshConnectionE attempts to connect to privateHost (which is not addressable from the Internet) via a separate publicHost (which is addressable from the Internet) and then executes "command" on privateHost and returns its output. It is useful for checking that it's possible to SSH from a Bastion Host to a private instance.
func CheckSshCommand ¶
CheckSshCommand checks that you can connect via SSH to the given host and run the given command. Returns the stdout/stderr.
func CheckSshCommandE ¶
CheckSshCommandE checks that you can connect via SSH to the given host and run the given command. Returns the stdout/stderr.
func CheckSshConnection ¶
CheckSshConnection checks that you can connect via SSH to the given host and fail the test if the connection fails.
func CheckSshConnectionE ¶
CheckSshConnectionE checks that you can connect via SSH to the given host and return an error if the connection fails.
func NoOpHostKeyCallback ¶
NoOpHostKeyCallback is an ssh.HostKeyCallback that does nothing. Only use this when you're sure you don't want to check the host key at all (e.g., only for testing and non-production use cases).
Types ¶
type JumpHostSession ¶
type JumpHostSession struct { JumpHostClient *ssh.Client HostVirtualConnection net.Conn HostConnection ssh.Conn }
JumpHostSession is a session with a jump host.
func (*JumpHostSession) Cleanup ¶
func (jumpHost *JumpHostSession) Cleanup(t *testing.T)
Cleanup cleans the jump host session up.
type KeyPair ¶
KeyPair is a public and private key pair that can be used for SSH access.
func GenerateRSAKeyPair ¶
GenerateRSAKeyPair generates an RSA Keypair and return the public and private keys.
type SshConnectionOptions ¶
type SshConnectionOptions struct { Username string Address string Port int AuthMethods []ssh.AuthMethod Command string JumpHost *SshConnectionOptions }
SshConnectionOptions are the options for an SSH connection.
func (*SshConnectionOptions) ConnectionString ¶
func (options *SshConnectionOptions) ConnectionString() string
ConnectionString returns the connection string for an SSH connection.
type SshSession ¶
type SshSession struct { Options *SshConnectionOptions Client *ssh.Client Session *ssh.Session JumpHost *JumpHostSession Input *func(io.WriteCloser) }
SshSession is a container object for all resources created by an SSH session. The reason we need this is so that we can do a single defer in a top-level method that calls the Cleanup method to go through and ensure all of these resources are released and cleaned up.
func (*SshSession) Cleanup ¶
func (sshSession *SshSession) Cleanup(t *testing.T)
Cleanup cleans up an existing SSH session.