diff --git a/README.md b/README.md index cb5332b7..863616ec 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,10 @@ This project was inspired by **Sharp.SSH** library which was ported from java an * Universal Windows Platform 10 ## Usage -Establish an SFTP connection using both password and public-key authentication: + +### Multi-factor authentication + +Establish a SFTP connection using both password and public-key authentication: ```cs var connectionInfo = new ConnectionInfo("sftp.foo.com", @@ -73,6 +76,40 @@ using (var client = new SftpClient(connectionInfo)) ``` +### Verify host identify + +Establish a SSH connection using user name and password, and reject the connection if the fingerprint of the server does not match the expected fingerprint: + +```cs +byte[] expectedFingerPrint = new byte[] { + 0x66, 0x31, 0xaf, 0x00, 0x54, 0xb9, 0x87, 0x31, + 0xff, 0x58, 0x1c, 0x31, 0xb1, 0xa2, 0x4c, 0x6b + }; + +using (var client = new SshClient("sftp.foo.com", "guest", "pwd")) +{ + client.HostKeyReceived += (sender, e) => + { + if (expectedFingerPrint.Length != e.FingerPrint.Length) + { + for (var i = 0; i < expectedFingerPrint.Length; i++) + { + if (expectedFingerPrint[i] != e.FingerPrint[i]) + { + e.CanTrust = false; + break; + } + } + } + else + { + e.CanTrust = false; + } + }; + client.Connect(); +} +``` + ## Building SSH.NET Software | net35 | net40 | netstandard1.3 | sl4 | sl5 | wp71 | wp8 | uap10.0 |