paramiko.HostKeys

Package paramiko :: Class HostKeys |
[show private | hide private]
[frames | no frames]

## Class HostKeys

    DictMixin --+
                |
               HostKeys

Representation of an openssh-style "known hosts" file. Host keys can be read from one or more files, and then individual hosts can be looked up to verify server keys during SSH negotiation.

A HostKeys object can be treated like a dict; any dict lookup is equivalent to calling `lookup`.

Since: 1.5.3

Method Summary
| ``__init__`(self, filename)` Create a new HostKeys object, optionally loading keys from an openssh style host-key file.
| `__getitem__(self, key)`
| `__setitem__(self, key, value)`
| ``add`(self, hostname, keytype, key)` Add a host key entry to the table.
bool | ``check`(self, hostname, key)` Return True if the given key is associated with the given hostname in this dictionary.
| ``clear`(self)` Remove all host keys from the dictionary.
str | ``hash_host`(hostname, salt)` Return a "hashed" form of the hostname, as used by openssh when storing hashed hostnames in the known_hosts file. (Static method)
| `keys(self)`
| ``load`(self, filename)` Read a file of known SSH host keys, in the format used by openssh.
dict(str, `PKey`) | ``lookup`(self, hostname)` Find a hostkey entry for a given hostname or IP.
| ``save`(self, filename)` Save host keys into a file, in the format used by openssh.
| `values(self)`
Inherited from DictMixin
| ``__cmp__`(self, other)`
| ``__contains__`(self, key)`
| ``__iter__`(self)`
| ``__len__`(self)`
| ``__repr__`(self)`
| ``get`(self, key, default)`
| ``has_key`(self, key)`
| ``items`(self)`
| ``iteritems`(self)`
| ``iterkeys`(self)`
| ``itervalues`(self)`
| ``pop`(self, key, *args)`
| ``popitem`(self)`
| ``setdefault`(self, key, default)`
| ``update`(self, other, **kwargs)`

Instance Method Details

### __init__(self, filename=None) (Constructor) Create a new HostKeys object, optionally loading keys from an openssh style host-key file. Parameters: `filename` - filename to load host keys from, or `None` (type=str)

### add(self, hostname, keytype, key) Add a host key entry to the table. Any existing entry for a `(hostname, keytype)` pair will be replaced. Parameters: `hostname` - the hostname (or IP) to add (type=str) `keytype` - key type (`"ssh-rsa"` or `"ssh-dss"`) (type=str) `key` - the key to add (type=`PKey`)

### check(self, hostname, key) Return True if the given key is associated with the given hostname in this dictionary. Parameters: `hostname` - hostname (or IP) of the SSH server (type=str) `key` - the key to check (type=`PKey`) Returns: `True` if the key is associated with the hostname; `False` if not (type=bool)

### clear(self) Remove all host keys from the dictionary. Overrides: `UserDict.DictMixin.clear`

### load(self, filename) Read a file of known SSH host keys, in the format used by openssh. This type of file unfortunately doesn't exist on Windows, but on posix, it will usually be stored in `os.path.expanduser("~/.ssh/known_hosts")`. If this method is called multiple times, the host keys are merged, not cleared. So multiple calls to `load` will just call `add`, replacing any existing entries and adding new ones. Parameters: `filename` - name of the file to read host keys from (type=str) Raises: `IOError` - if there was an error reading the file

### lookup(self, hostname) Find a hostkey entry for a given hostname or IP. If no entry is found, `None` is returned. Otherwise a dictionary of keytype to key is returned. Parameters: `hostname` - the hostname (or IP) to lookup (type=str) Returns: keys associated with this host (or `None`) (type=dict(str, `PKey`))

### save(self, filename) Save host keys into a file, in the format used by openssh. The order of keys in the file will be preserved when possible (if these keys were loaded from a file originally). The single exception is that combined lines will be split into individual key lines, which is arguably a bug. Parameters: `filename` - name of the file to write (type=str) Raises: `IOError` - if there was an error writing the file Since: 1.6.1

Static Method Details

### hash_host(hostname, salt=None) Return a "hashed" form of the hostname, as used by openssh when storing hashed hostnames in the known_hosts file. Parameters: `hostname` - the hostname to hash (type=str) `salt` - optional salt to use when hashing (must be 20 bytes long) (type=str) Returns: the hashed hostname (type=str)

Generated by Epydoc 2.1 on Wed Aug 16 14:35:05 2006 | http://epydoc.sf.net