Manually configuring host keys

PuTTY

4.20.2 Manually configuring host keys

In some situations, if PuTTY's automated host key management is not doing what you need, you might need to manually configure PuTTY to accept a specific host key, or one of a specific set of host keys.

One reason why you might want to do this is because the host name PuTTY is connecting to is using round-robin DNS to return one of multiple actual servers, and they all have different host keys. In that situation, you might need to configure PuTTY to accept any of a list of host keys for the possible servers, while still rejecting any key not in that list.

Another reason is if PuTTY's automated host key management is completely unavailable, e.g. because PuTTY (or Plink or PSFTP, etc) is running in a Windows environment without access to the Registry. In that situation, you will probably want to use the -hostkey command-line option to configure the expected host key(s); see section 3.8.3.20.

For situations where PuTTY's automated host key management simply picks the wrong host name to store a key under, you may want to consider setting a ‘logical host name’ instead; see section 4.13.5.

To configure manual host keys via the GUI, enter some text describing the host key into the edit box in the ‘Manually configure host keys for this connection’ container, and press the ‘Add’ button. The text will appear in the ‘Host keys or fingerprints to accept’ list box. You can remove keys again with the ‘Remove’ button.

The text describing a host key can be in one of the following formats:

  • An MD5-based host key fingerprint of the form displayed in PuTTY's Event Log and host key dialog boxes, i.e. sixteen 2-digit hex numbers separated by colons.
  • A base64-encoded blob describing an SSH-2 public key in OpenSSH's one-line public key format. How you acquire a public key in this format is server-dependent; on an OpenSSH server it can typically be found in a location like /etc/ssh/ssh_host_rsa_key.pub.

If this box contains at least one host key or fingerprint when PuTTY makes an SSH connection, then PuTTY's automated host key management is completely bypassed: the connection will be permitted if and only if the host key presented by the server is one of the keys listed in this box, and the host key store in the Registry will be neither read nor written, unless you explicitly do so.

If the box is empty (as it usually is), then PuTTY's automated host key management will work as normal.