The Maverick.NET SSH API

AbstractKnownHostsKeyVerification Class

This class provides an abstract HostKeyVerification implementation which checks SSH host keys against the OpenSSH known_hosts file format.

For a list of all members of this type, see AbstractKnownHostsKeyVerification Members.

System.Object
   Maverick.PublicKey.AbstractKnownHostsKeyVerification
      Maverick.PublicKey.ConsoleKnownHostsKeyVerification

[Visual Basic]
MustInherit Public Class AbstractKnownHostsKeyVerification
    Implements HostKeyVerification
[C#]
public abstract class AbstractKnownHostsKeyVerification : HostKeyVerification

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

The known_hosts file lists an individual host key on each line formatted in either the SSH1 or SSH2 format. This normally resides in the users home in a folder called .ssh.

einstein ssh-dss AAAAB3NzaC1kc3MAAACBANzQ4Jn6EvlK0Y4NuDc2QTa5ts3dqGvOf+ShUf1/KwdIB4QMxRWtz+3btmF3xXvvSwzE9t2Z1oxvrn1TGU6aH15E8+1v9yp6s6FbYIADMvW4wuWC8CNVNAkO/Jk8JDeSKNjHeq2FztOIyM1rGhzt583HkpJEhkSztJZokdo67mulpAAAAFQClWxdzUk1v6XTHHtEMf3FK2RDwvwAAAIEA2C7ICXZykhAjAZKtvE1uk41LNGWertYQiEPyD8ABoirSO+C3M996qBnGoe0EYCxRq2eEmr+JhgQzXkq6ewfXk2khzDTZQTNzHXvYh5oCPpK/Mqq0yfh4W09ZNYl6hzaSiUfYDVJXh7HeMLjw5oQACsvO8A/16EtKB3FxAZEHuCcAAACBAKD4DNDgW+IB+ohp3I16LzAizreVGakodfdSE/fpVwBtN+oIDZ9JI+ycj6O1Z2EzuFz4hTaJfxH4eQ4+MMIer4VujM6gzaso2WqHIpkOiY6iOoP9uZvaQoifRMRFqqSxfblrNjlF+K4nd3iJoriqmkovEfbOp/vGV+vg8olPnj4q
192.168.1.66 1024 35 14554084573390330574513456998693360640743062439064913138887506317981558005185757691240822191217064045719710862171205767649165066409743167251924324571973956644397504169828533432216290550775625524908204640031367521561867021424880653907010325619279958459623163352692776842935858940825320497418513160647260710784277
192.168.1.66 ssh-dss AAAAB3NzaC1kc3MAADCBAPRsO/8xTjwagfzOi53qDwPfJdyufUsR7p6k82wvrCmfuFni7xaej9vxps29yQgRrSkhXhGzj6uplXx+XoDdCURluY3dKogrAOXoKHrmCNOLpwdq2o8q+UxyP5r+bMiAhd+Z0gpnOx9jR6REwrLmInmFFv58Sj+PomRDAGHkS3ALAAAAFQCIkwEUYF03c2K3nOgGy7mg5FClCQAAAH9b8/M4ZOI4XoljEiVUsabRVInH7R74tztGJ8TZxCb5tI/84F77tfkFLqwDfaVmeQlTzGslm+hf3ec/W22tWZqa/XPDyfIHv2MV3LVqz32FIjtGYCM0pkTttU/Aw3cD4DjSUSI83Q5eDc3Fky39idTArx+DHE1T5OghqZXPLskRAAAAgQDM8dlmpycIPB7hUyEVZtdGXgtLAsoTDanvygn5AML9YzHxeE2MORiTAX6TLS6JPdOAxx5k+Df33Q74qofJRksc/JGYeZiFwZc2XUrdalYKFlskfAKx7G9/ZolKEs8SutHWPaNqQF4TCVoyKkVJo7ObRIGzoJzcJ03eB43TqKZhlw==

This class provides the means to read, and optionally add additional keys to the file. To implement simply override the abstract methods, evaluate the public key supplied by the SSH server and if the key should be allowed call AllowHost.
public class MyKnownHostsKeyVerification : AbstractKnownHostsKeyVerification
{

    public MyKnownHostsKeyVerification()
    {
    }

    public MyKnownHostsKeyVerification(String knownhosts) : base(knownhosts)
    {
    }


    public override void OnHostKeyMismatch(String host, SSHPublicKey pk, SSHPublicKey actual)
    {
        // This method is called when a host supplies a key with does not match the current
        // key held in the known_hosts file
    
        // Allow the host but do not save to the known_hosts file
        AllowHost(host, actual, false);
    }

    public override void OnUnknownHost(String host, SSHPublicKey pk)
    {
        // This method is called when a host that is not registered in the known_hosts file
        // supplies its public key
    
        // Allow the host and save the key to the known_hosts file
        AllowHost(host, pk, true);
    }
}

Requirements

Namespace: Maverick.PublicKey

Assembly: Maverick.NET (in Maverick.NET.dll)

See Also

AbstractKnownHostsKeyVerification Members | Maverick.PublicKey Namespace