ssh2.knownhost¶
-
class
ssh2.knownhost.
KnownHost
¶ Manage known host entries.
-
add
(self, bytes host, bytes salt, bytes key, int typemask)¶ Deprecated - use
self.addc
-
addc
(self, bytes host, bytes key, int typemask, bytes salt=None, bytes comment=None)¶ Adds a host and its key to known hosts collection.
Note -
libssh2
expects correct use of hashed hosts whenLIBSSH2_KNOWNHOST_TYPE_SHA1
is part of typemask. Incorrect use of hashed host typemask without appropriate hashed host and salt values will result in host entries being added to the collection without a host name.Parameters: - host (bytes) – Host to add key for.
- key (bytes) – Key to add.
- typemask – Bitmask of one of each from
ssh2.knownhost.LIBSSH2_KNOWNHOST_TYPE_*
,ssh2.knownhost.LIBSSH2_KNOWNHOST_KEYENC_*
andssh2.knownhost.LIBSSH2_KNOWNHOST_KEY_*
for example for plain text host, raw key encoding and SSH RSA keytype
would beLIBSSH2_KNOWNHOST_TYPE_PLAIN | LIBSSH2_KNOWNHOST_KEYENC_RAW | LIBSSH2_KNOWNHOST_KEY_SSHRSA
. - salt (bytes) – Salt used for host hashing if host is hashed.
Defaults to
None
. - comment (bytes) – Comment to add for host. Defaults to
None
.
Raises: ssh2.exceptions.KnownHostAddError
on errors adding known host entry.
-
check
(self, bytes host, bytes key, int typemask)¶ Deprecated - use
self.checkp
-
checkp
(self, bytes host, int port, bytes key, int typemask)¶ Check a host and its key against the known hosts collection and return known host entry, if any.
Note that server key provided to this function must be base64 encoded only if checking against a
self.addc
added known public key. When usingself.readfile
and a known_hosts file, encoding is not needed.ssh2.exceptions.KnownHostCheckError
is base class for all host check error exceptions and can be used to catch all host check errors.Parameters: - host (bytes) – Host to check.
- key (bytes) – Key of host to check.
- typemask – Bitmask of one of each from
ssh2.knownhost.LIBSSH2_KNOWNHOST_TYPE_*
,ssh2.knownhost.LIBSSH2_KNOWNHOST_KEYENC_*
andssh2.knownhost.LIBSSH2_KNOWNHOST_KEY_*
for example for plain text host, raw key encoding and SSH RSA keytype
would beLIBSSH2_KNOWNHOST_TYPE_PLAIN | LIBSSH2_KNOWNHOST_KEYENC_RAW | LIBSSH2_KNOWNHOST_KEY_SSHRSA
.
Raises: ssh2.exceptions.KnownHostCheckMisMatchError
on provided key mis-match error with found key from known hosts.Raises: ssh2.exceptions.KnownHostCheckNotFoundError
on host not found in known hosts.Raises: ssh2.exceptions.KnownHostCheckFailure
on failure checking known host entry.Raises: ssh2.exceptions.KnownHostCheckError
on unknown errors checking known host.Return type:
-
delete
(self, KnownHostEntry entry)¶ Delete given known host entry from collection of known hosts.
Parameters: entry ( ssh2.knownhost.KnownHostEntry
) – Known host entry to delete.Raises: ssh2.exceptions.KnownHostDeleteError
on errors deleting host entry.
-
get
(self, KnownHostEntry prev=None)¶ Retrieve all host entries in known hosts collection.
Parameters: prev – (Optional) Existing known host entry to start retrieval from. All hosts are retrieved when prev is None
which is the default.Raises: ssh2.exceptions.KnownHostGetError
on errors retrieving known host collection.Return type: list( ssh2.knownhost.KnownHostEntry
)
-
readfile
(self, filename, int f_type=c_ssh2.LIBSSH2_KNOWNHOST_FILE_OPENSSH)¶ Read known hosts file and add hosts to known hosts collection. Only OpenSSH known hosts file format is currently supported.
Returns number of successfully read host entries.
Parameters: filename (str) – File name to read. Raises: ssh2.exceptions.KnownHostReadFileError
on errors reading file.Return type: int
-
readline
(self, bytes line, int f_type=c_ssh2.LIBSSH2_KNOWNHOST_FILE_OPENSSH)¶ Read line from known hosts file and add to known hosts collection. Only OpenSSH known hosts file format is currently supported.
Note - When using readline, the key values returned by
self.get
will need to be base64 encoded as libssh2’s readline does not encode them when adding, unlikeself.readfile
andself.addc
.Parameters: line (bytes) – Byte string representing line to read. Raises: ssh2.exceptions.KnownHostReadLineError
on errors reading line.
-
writefile
(self, filename, int f_type=c_ssh2.LIBSSH2_KNOWNHOST_FILE_OPENSSH)¶ Write all known host entries to file. Only OpenSSH known hosts file format is currently supported.
Parameters: filename (str) – File name to write known hosts to. Raises: ssh2.exceptions.KnownHostWriteFileError
on errors writing to file.
-
writeline
(self, KnownHostEntry entry, int f_type=c_ssh2.LIBSSH2_KNOWNHOST_FILE_OPENSSH, size_t buf_len=1024)¶ Convert a single known host entry to a single line of output for writing. Only OpenSSH known hosts file format is currently supported.
Parameters: entry ( ssh2.knownhost.KnownHostEntry
) – Known host entry to write line for.Raises: ssh2.exceptions.KnownHostWriteLineError
on errors writing line.Return type: bytes
-
-
class
ssh2.knownhost.
KnownHostEntry
¶ Class representing a single known host entry.
-
key
¶ Key byte string.
Key is stored base64 encoded according to
libssh2
documentation and is returned by this property as a base64 decoded byte string.Note that in some cases, like keys added by
ssh2.knownhost.KnownHost.readline()
, the stored key is not base64 encoded, contrary to documentation, andKnownHostEntry.key
will need to be re-encoded as base64 to get actual key.
-
magic
¶ Entry magic number.
-
name
¶ Name of host.
-
typemask
¶ Type mask of host entry.
-