v0.16.0 Latest Latest

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

Go to latest
Published: Nov 27, 2023 License: BSD-3-Clause Imports: 13 Imported by: 573



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



This section is empty.


This section is empty.


func HashHostname

func HashHostname(hostname string) string

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

func Line

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

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

func New

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

New creates a host key callback from the given OpenSSH host key files. The returned callback 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

func Normalize(address string) string

Normalize normalizes an address into the form used in known_hosts


type KeyError

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

func (u *KeyError) Error() string

type KnownKey

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

KnownKey represents a key declared in a known_hosts file.

func (*KnownKey) String

func (k *KnownKey) String() string

type RevokedError

type RevokedError struct {
	Revoked KnownKey

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

func (*RevokedError) Error

func (r *RevokedError) Error() string

Jump to

Keyboard shortcuts

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