Class AbstractKnownHostsKeyVerification
- All Implemented Interfaces:
HostKeyVerification
- Direct Known Subclasses:
ConsoleKnownHostsKeyVerification
,DialogKnownHostsKeyVerification
An abstract HostKeyVerification
class providing validation
against the known_hosts format.
- Since:
- 0.2.0
- Version:
- $Revision: 1.18 $
- Author:
- Lee David Painter
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractKnownHostsKeyVerification
(String knownhosts) Constructs a host key verification instance reading the specified known_hosts file. -
Method Summary
Modifier and TypeMethodDescriptionReturns a Map of the allowed hosts.void
allowHost
(String host, SshPublicKey pk, boolean always) Allows a host key, optionally recording the key to the known_hosts file.boolean
Determines whether the host file is writable.abstract void
onHostKeyMismatch
(String host, SshPublicKey allowedHostKey, SshPublicKey actualHostKey) Called by theverifyHost
method when the host key supplied by the host does not match the current key recording in the known hosts file.abstract void
onUnknownHost
(String host, SshPublicKey key) Called by theverifyHost
method when the host key supplied is not recorded in the known_hosts file.void
removeAllowedHost
(String host) Removes an allowed host.void
Save's the host key file to be saved.toString()
Outputs the allowed hosts in the known_hosts file format.boolean
verifyHost
(String host, SshPublicKey pk) Verifies a host key against the list of known_hosts.
-
Constructor Details
-
AbstractKnownHostsKeyVerification
Constructs a host key verification instance reading the specified known_hosts file.
- Parameters:
knownhosts
- the path of the known_hosts file- Throws:
InvalidHostFileException
- if the known_hosts file is invalid- Since:
- 0.2.0
-
-
Method Details
-
isHostFileWriteable
public boolean isHostFileWriteable()Determines whether the host file is writable.
- Returns:
- true if the host file is writable, otherwise false
- Since:
- 0.2.0
-
onHostKeyMismatch
public abstract void onHostKeyMismatch(String host, SshPublicKey allowedHostKey, SshPublicKey actualHostKey) throws TransportProtocolException Called by the
verifyHost
method when the host key supplied by the host does not match the current key recording in the known hosts file.- Parameters:
host
- the name of the hostallowedHostKey
- the current key recorded in the known_hosts file.actualHostKey
- the actual key supplied by the user- Throws:
TransportProtocolException
- if an error occurs- Since:
- 0.2.0
-
onUnknownHost
Called by the
verifyHost
method when the host key supplied is not recorded in the known_hosts file.- Parameters:
host
- the name of the hostkey
- the public key supplied by the host- Throws:
TransportProtocolException
- if an error occurs- Since:
- 0.2.0
-
allowHost
Allows a host key, optionally recording the key to the known_hosts file.
- Parameters:
host
- the name of the hostpk
- the public key to allowalways
- true if the key should be written to the known_hosts file- Throws:
InvalidHostFileException
- if the host file cannot be written- Since:
- 0.2.0
-
allowedHosts
Returns a Map of the allowed hosts.
The keys of the returned Map are comma separated strings of "hostname,ipaddress". The value objects are Maps containing a string key of the public key alogorithm name and the public key as the value.
- Returns:
- the allowed hosts
- Since:
- 0.2.0
-
removeAllowedHost
Removes an allowed host.
- Parameters:
host
- the host to remove- Since:
- 0.2.0
-
verifyHost
Verifies a host key against the list of known_hosts.
If the host unknown or the key does not match the currently allowed host key the abstract
onUnknownHost
oronHostKeyMismatch
methods are called so that the caller may identify and allow the host.- Specified by:
verifyHost
in interfaceHostKeyVerification
- Parameters:
host
- the name of the hostpk
- the host key supplied- Returns:
- true if the host is accepted, otherwise false
- Throws:
TransportProtocolException
- if an error occurs- Since:
- 0.2.0
-
saveHostFile
Save's the host key file to be saved.
- Throws:
InvalidHostFileException
- if the host file is invalid- Since:
- 0.2.0
-
toString
Outputs the allowed hosts in the known_hosts file format.
The format consists of any number of lines each representing one key for a single host.
titan,192.168.1.12 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4Ed..... titan,192.168.1.12 ssh-rsa AAAAB3NzaC1kc3MAAACBAP1/U4Ed..... einstein,192.168.1.40 ssh-dss AAAAB3NzaC1kc3MAAACBAP1/U4Ed.....
-