ssh

package
v0.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Overview

Package ssh implements a parser for the OpenSSH known_hosts host key database, and provides utility functions for writing OpenSSH compliant known_hosts files.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HashHostname added in v0.0.2

func HashHostname(hostname string) string

HashHostname hashes the given hostname. The hostname is not normalized before hashing.

func Line added in v0.0.2

func Line(addresses []string, key ssh.PublicKey) string

Line returns a line to add append to the known_hosts files.

func New added in v0.0.2

func New(files ...string) (ssh.HostKeyCallback, *hostKeyDB, error)

New creates a host key hostCallback from the given OpenSSH host key files. The returned hostCallback is for use in ssh.ClientConfig.HostKeyCallback. By preference, the key check operates on the hostname if available, i.e. if a server changes its IP address, the host key check will still succeed, even though a record of the new IP address is not available.

func Normalize added in v0.0.2

func Normalize(address string) string

Normalize normalizes an address into the form used in known_hosts

func RefreshKnownHosts added in v0.1.4

func RefreshKnownHosts() error

Types

type Conn

type Conn struct {
	net.Conn
	ReadTimeout  time.Duration
	WriteTimeout time.Duration
}

Conn wraps a net.Conn, and sets a deadline for every read and write operation.

func (*Conn) Read

func (c *Conn) Read(b []byte) (int, error)

func (*Conn) Write

func (c *Conn) Write(b []byte) (int, error)

type Connection

type Connection struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewConnection

func NewConnection(addr, user string) (*Connection, error)

func (*Connection) Close

func (c *Connection) Close()

func (*Connection) IsValid

func (c *Connection) IsValid() bool

func (*Connection) MultipleRun

func (c *Connection) MultipleRun(commands ...string) (string, error)

func (*Connection) SingleRun

func (c *Connection) SingleRun(cmd string) (string, error)

type KeyError added in v0.0.2

type KeyError struct {
	// Want holds the accepted host keys. For each key algorithm,
	// there can be one hostkey.  If Want is empty, the host is
	// unknown. If Want is non-empty, there was a mismatch, which
	// can signify a MITM attack.
	Want []KnownKey
}

KeyError is returned if we did not find the key in the host key database, or there was a mismatch. Typically, in batch applications, this should be interpreted as failure. Interactive applications can offer an interactive prompt to the user.

func (*KeyError) Error added in v0.0.2

func (u *KeyError) Error() string

type KnownKey added in v0.0.2

type KnownKey struct {
	Key      ssh.PublicKey
	Filename string
	Line     int
}

KnownKey represents a key declared in a known_hosts file.

func (*KnownKey) String added in v0.0.2

func (k *KnownKey) String() string

type RevokedError added in v0.0.2

type RevokedError struct {
	Revoked KnownKey
}

RevokedError is returned if we found a key that was revoked.

func (*RevokedError) Error added in v0.0.2

func (r *RevokedError) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL