Skip to content

Instantly share code, notes, and snippets.

@darinkes
Created December 7, 2018 09:45
Show Gist options
  • Save darinkes/7e2cc25580b6dc247b8def92f1067ef7 to your computer and use it in GitHub Desktop.
Save darinkes/7e2cc25580b6dc247b8def92f1067ef7 to your computer and use it in GitHub Desktop.
SSH.NET EC Tests
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtbs6KCLsePWaxraXweKYs/NqBWYT8Kx4woJHE8xO1ZO+hl0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkxFx0mJMJkCMffytiT3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/G34QuVWkKobm8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdiQMDifn4nJBJDHOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q04if3HaERo3q/EMu1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxOfnmxC1gmmX18LCBG/X73BoCXQEBEAJz3V9w0FMTgUBebK3fkfOMLNzWn5aMR608wQHOEPYhHffCJfdJR6lUWLHZz5+EZRfM9oHpysMtToYQoGtb9xM7D5J3lnWZgSea2R7xSeqpClN5nQUMGu8y2d2S3g9o1vrTdeu71u09QFOx2AXBPUmCjpCuBlNyYEEQMfRMtQ6PDbPdvLM1uylbQqB+/6jMsCyEFvlLit9GcZ7ItKQN+jsZNmP+f7ytVXLsZTjPLd5mWWrf6T1T1Xt9DBoLXnMrmDiCf/EXiTYonIO6B0FHvNUCrDzZ7rxIebqePLes1Q2yoUqmC8g+cww3
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI/dlNvfssW9KYrB67TcDmz9zBzDf7eMvUupAroP3b3FjUnYnpL3Utc4GkF/PiX7w2DuxaG70/+EX/CYHZBHKCs=
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBFM/UMxegeBb5Ff5L83FQQSWi7VyYsPoISJH7OnNoYbqbOXouFRj5nd/Yze7i7u1wzxOAH+OIducj1Np43lArgdfUP0NeQflGF+ct+ubeQJM2gIUp3RZr9AC8quU0qJGLw==
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBABrunhZWBr7Tyq7XrQGt3MrJE0kxAJ4aEWW412rvf+5pbeqWqgSJo21zm4HscfKMJZBOZ/OtJEtFntgHBRqdzDKHgCrqAGAaxdXPA29jeTFEOUatJ8yaweVfPjV2DD3CbV8Fx/3ueJ7FFD/EaWGTJ/shiVD+zkGlcXaVL2XQfmEGKmlGA==
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK8Nq27ZzIZBgSLkQQeFY5XrLBOpRnNxptfY9jZah9+B/lytUay3AzLWDLb4nPJlg4oiHFvtzmeAMF9OvCTjU1k=
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK3gLuyNGjcu8fUqKXiz6/AckqI2/JmDP81BxyWVBgGy5IsQhfie8ZReOeEs+3A+pT6T6qcMsV31aFXzPU/nPeTzYKHSTi4Wn5tVyYOYP40TZe909vax7WvZVelBheLWXJDpHpMgQbHDzpw+Sn29lFJB0DNebb72LkDnxRLcbeV4S8SJvb2cWmHcNg97+Gb2cAkVz2Kwo9PpOwCONW6TpODuZLGn7zIwDQgBNu9lxeB936RiQkZ+v/eG05wTfvSpnapJz1bCfQkjiq5twLq7puCslDeRZkFYsNPHQtyMWT52UjbyO7eFgXzk8ycLSiq6N+otW4Mry/PeNA/r41Z759
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPXjWwR4ojp+Zk6drIw+vyU9gDafM6BhL3Qx70wHlrbQ
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEA+TDv5/cqkg07M8M1aQKS8eUkBXnBOWXw5IMalXR0HnJtQQD6M2eHihjYSp+9oU+/Zi5afR11/qDRHLlU/Nx8=
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFHnYJIw5v3UHVo2gN1BjymHv+DyVQW5nYpphqTmhMT9mEfTONbvbZLFMih99MgwflS/8a8tfnr8tAiRJCSsOVk=
ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBBSTitW+g48jWFDNak3HT1Sjqob6ysZxu8GrXl4UrQacr9PRQErF1tnb7/8oBgjpJ4Mcz23c5EXVpfkSmNMQEjh3tlj+VX2Nfoycnhe4a14mx6UzaIybL6n1ljDzcFgHVg==
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBABrpVjsANqcvqMUo1wo0I1uVCXQ6xrauy4iU86FiOwFmkYRrle4w3oYdRJwniC3TwGMuBuMPMIoCTXr0UtUzn1vkQESNR/J/jAxVseLlVe+KDfZHKvsvk2+O4XaSa1qMfLwN3spwlj08+ylKjlO6V3g0hbz4ZaSVwuiRS7Xsv8W2MV6rg==
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK3gLuyNGjcu8fUqKXiz6/AckqI2/JmDP81BxyWVBgGy5IsQhfie8ZReOeEs+3A+pT6T6qcMsV31aFXzPU/nPeTzYKHSTi4Wn5tVyYOYP40TZe909vax7WvZVelBheLWXJDpHpMgQbHDzpw+Sn29lFJB0DNebb72LkDnxRLcbeV4S8SJvb2cWmHcNg97+Gb2cAkVz2Kwo9PpOwCONW6TpODuZLGn7zIwDQgBNu9lxeB936RiQkZ+v/eG05wTfvSpnapJz1bCfQkjiq5twLq7puCslDeRZkFYsNPHQtyMWT52UjbyO7eFgXzk8ycLSiq6N+otW4Mry/PeNA/r41Z759
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH10Zz6sstqY3zEfaqfmxV4aSf0QfMZO8eqcuojCnh7A
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK8Nq27ZzIZBgSLkQQeFY5XrLBOpRnNxptfY9jZah9+B/lytUay3AzLWDLb4nPJlg4oiHFvtzmeAMF9OvCTjU1k=
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtbs6KCLsePWaxraXweKYs/NqBWYT8Kx4woJHE8xO1ZO+hl0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkxFx0mJMJkCMffytiT3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/G34QuVWkKobm8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdiQMDifn4nJBJDHOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q04if3HaERo3q/EMu1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxOfnmxC1gmmX18LCBG/X73BoCXQEBEAJz3V9w0FMTgUBebK3fkfOMLNzWn5aMR608wQHOEPYhHffCJfdJR6lUWLHZz5+EZRfM9oHpysMtToYQoGtb9xM7D5J3lnWZgSea2R7xSeqpClN5nQUMGu8y2d2S3g9o1vrTdeu71u09QFOx2AXBPUmCjpCuBlNyYEEQMfRMtQ6PDbPdvLM1uylbQqB+/6jMsCyEFvlLit9GcZ7ItKQN+jsZNmP+f7ytVXLsZTjPLd5mWWrf6T1T1Xt9DBoLXnMrmDiCf/EXiTYonIO6B0FHvNUCrDzZ7rxIebqePLes1Q2yoUqmC8g+cww3
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using Renci.SshNet;
using Renci.SshNet.Common;
using Renci.SshNet.Security;
namespace SshEcdsa
{
class Program
{
private static string ecdsa_key = @"-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDyJ1Hg/Id+AUAKlwNSOLlHrojMnydAzJ5j3wmsl5FssoAoGCCqGSM49
AwEHoUQDQgAEUedgkjDm/dQdWjaA3UGPKYe/4PJVBbmdimmGpOaExP2YR9M41u9t
ksUyKH30yDB+VL/xry1+evy0CJEkJKw5WQ==
-----END EC PRIVATE KEY-----
";
private static string ecdsa384_key = @"-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDCQawHdHLR7NvKa2vPV0sVkbzOE8c0enp95iEysGcGV66RXE1EH//nh
gu5UzeTR4KigBwYFK4EEACKhZANiAAQUk4rVvoOPI1hQzWpNx09Uo6qG+srGcbvB
q15eFK0GnK/T0UBKxdbZ2+//KAYI6SeDHM9t3ORF1aX5EpjTEBI4d7ZY/lV9jX6M
nJ4XuGteJselM2iMmy+p9ZYw83BYB1Y=
-----END EC PRIVATE KEY-----
";
private static string ecdsa_521_key = @"-----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIBn2DAme7AU8sCA+/sd6s3c2FNW26IiPvulGd3FC8k5q+fjBZ5LUWR
iJMGrsf2rJLO8hXMGJYoF9tjZEGaabQ8KVagBwYFK4EEACOhgYkDgYYABABrpVjs
ANqcvqMUo1wo0I1uVCXQ6xrauy4iU86FiOwFmkYRrle4w3oYdRJwniC3TwGMuBuM
PMIoCTXr0UtUzn1vkQESNR/J/jAxVseLlVe+KDfZHKvsvk2+O4XaSa1qMfLwN3sp
wlj08+ylKjlO6V3g0hbz4ZaSVwuiRS7Xsv8W2MV6rg==
-----END EC PRIVATE KEY-----
";
private static string ed25519_key = @"-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACD141sEeKI6fmZOnayMPr8lPYA2nzOgYS90Me9MB5a20AAAAJDtVPT77VT0
+wAAAAtzc2gtZWQyNTUxOQAAACD141sEeKI6fmZOnayMPr8lPYA2nzOgYS90Me9MB5a20A
AAAEAdomU0VoQlcKrf28B5rpYUvpInKhFm7LhCPdSwNYx4MfXjWwR4ojp+Zk6drIw+vyU9
gDafM6BhL3Qx70wHlrbQAAAAC3NyaW5rZXNATkVPAQI=
-----END OPENSSH PRIVATE KEY-----
";
private static string rsa_key = @"-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAyt4C7sjRo3LvH1Kil4s+vwHJKiNvyZgz/NQccllQYBsuSLEI
X4nvGUXjnhLPtwPqU+k+qnDLFd9WhV8z1P5z3k82Ch0k4uFp+bVcmDmD+NE2XvdP
b2se1r2VXpQYXi1lyQ6R6TIEGxw86cPkp9vZRSQdAzXm2+9i5A58US3G3leEvEib
29nFph3DYPe/hm9nAJFc9isKPT6TsAjjVuk6Tg7mSxp+8yMA0IATbvZcXgfd+kYk
JGfr/3htOcE370qZ2qSc9Wwn0JI4qubcC6u6bgrJQ3kWZBWLDTx0LcjFk+dlI28j
u3hYF85PMnC0oqujfqLVuDK8vz3jQP6+NWe+fQIDAQABAoIBAFE5kvMIdOd8nUFt
VKxYlEbl8CVvCtMsnaQdSUZ/fC7+swln2HJoR9NWqEwiPAiLCMeQHAciIi4fvgSo
mZguSTY5gOmLwbkVh9jzRJ+uZ6i4G4zqeGOkADT6s1Oq+Ba9FoPp0YINBJfWNo1i
YarT26pTS0p9ynFE59Nn+V6HdZiPutb76rEO9Ya53d+7RLebuAZwza2cm8pDvqmL
HnQbPMPYd46SDvhWxqgZcZAvY123fXWA8dZU+ABVfUsHoVeMhK1NO0bF6YWfvEq9
ARZ/neaxlsjb8RE3zHILDl/igifjj5GDG6FLaCzWYaE7JbuJ2B7eCAOzKfWHgSDz
BeZdkAECgYEA+ZOrcjLoUayMAX0pz19IWHeJQJMhYc35Tl7xwGEYzBq11lu5eFzg
ZHeEUNi/LWIV2e3/qARpe0a5Tryh5PfqhibV1N66RJm772RCEYl3cgv5bMUaA6hb
MnY/JsDoWZEVQvBA6T/wgPSrh/b0tl+uVVPNv/wRsklbXnjyXnQSXpUCgYEA0BaY
xpFHPhDVdXbqTfCDoE8wf/4ZLQzvBJAO8QQ8mPryFSx5tpBFvhNc6iRBS5QI2mYz
/mU8HXhNgNM9fH8LgkedDxLv2vwN1pkg7eiY7DlU0e7kIKdZRrLblM+tg6Lr0SLD
pEYTnIUt4EowX8Hmoq/sbrGPvKObbeih2UN8LkkCgYEA9h53I04qpmiHROyeb58i
JAP1uVWexOmvomak9zeJkbYBfhvEYnsM2ma2eFfW6DVjIR/AT3vSXbyX/5qr+LW3
dIYVty/R9ta4a9KuCMdMoI5IcchJ6DN9g9zyWBBC0hjuI630BVGFplYiVhnmp3bh
38meDGbTOMN4tEiHkzfZ6aUCgYA7rS9VSxa+Yv+Et3zMq1xkXjGPk2TO+bWWfmX6
kvd5/AXvMpkZVVjbARyVfZ5IOYUsdUEWBRxvay/28R3iFWFMlJMjXo/xInYphDLg
Z+NrY6nCpxs/jh7ZWrQEgmbFqLSufqTS+NHpAny8pSooXChzobZRrJSHSfhqVdwM
vgDgGQKBgAiVOCqiO7I1w43vYlJZf8aq8lowaufdNbSCyQV1AxIPxJuGr4dKCeai
X1Qmwei4KDRJs8W5IW8JPpIkGUYlvYeZsDq6XGFhVdpMN/cVkU9QKwkxvwigxCSc
MAPH8VDKRzOYk+UPhAqKZraOWnC8VXU1pJDIm9+9uACm4k4KVzxa
-----END RSA PRIVATE KEY-----
";
private static string ed25519_pw = @"-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABDqvzxGQ3
OGc2pmsJy/DH78AAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIH10Zz6sstqY3zEf
aqfmxV4aSf0QfMZO8eqcuojCnh7AAAAAkMz/OWbw1LdySEoZEkLOdnHhRSdRObmxbC7HtB
+U766cLZjTr4gQcpkDcvjiKcxKvOg12dgS1PIBskRJ1ooEJhtCtin+CmZZJWD4cIRWGCgt
PMuaYSKoCeRzwHoZ/GbhXCu7HHpycMVvGRBR1EZVlvbLsk8Uf3iXSeOzN/OILUuQIxKPVY
7SIg3DHvBcwygp5w==
-----END OPENSSH PRIVATE KEY-----
";
private static string ecdsa_pw = @"-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,9C80F8023EB28D07E756323C50214FF3
207/t3daKXjetOeeZHOCjJ6t/Yqj5Uewq24QWF0xKwglQOI15//kRJzCev78ffEk
zGqtI6ZU/8ajYKuhgWDnIZmvOKzsSBv/LZ9DcTZuWrE8Yt/x9DUnaWywOy5QBnE2
7CuIJ+tMHFCjGCHclQ6m9E1ygzU83QWLNfmhf5pCt60=
-----END EC PRIVATE KEY-----
";
private static string openssh_rsa = @"-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEA7W7Oigi7Hj1msa2l8HimLPzagVmE/CseMKCRxPMTtWTvoZdMt7hf
kthWA7h20a7oSSeH2t7FqeOpVNGFYvRV3BVWsKZJMRcdJiTCZAjH38rYk90XvZ3mKrKN/3
fcQsh4OiPnWqT6HSqg14oiV8UPtUwnE65skWSxvxt+ELlVpCqG5vE2O/GNDKQE7FzYt6vQ
ihMFSABBqjvau0mjX002KYiCMr6vgl8XYkDA4n5+JyQSQxznnfrL93ZoaqujRP2bT5UhXg
bzr8HFwuqQGvURECZTTI8Biv/6tOIn9x2hEaN6vxDLtXc99E2d6NW6cdriwaGFJ4jgVWDE
5mU006XdPQAAA8jzN6zf8zes3wAAAAdzc2gtcnNhAAABAQDtbs6KCLsePWaxraXweKYs/N
qBWYT8Kx4woJHE8xO1ZO+hl0y3uF+S2FYDuHbRruhJJ4fa3sWp46lU0YVi9FXcFVawpkkx
Fx0mJMJkCMffytiT3Re9neYqso3/d9xCyHg6I+dapPodKqDXiiJXxQ+1TCcTrmyRZLG/G3
4QuVWkKobm8TY78Y0MpATsXNi3q9CKEwVIAEGqO9q7SaNfTTYpiIIyvq+CXxdiQMDifn4n
JBJDHOed+sv3dmhqq6NE/ZtPlSFeBvOvwcXC6pAa9REQJlNMjwGK//q04if3HaERo3q/EM
u1dz30TZ3o1bpx2uLBoYUniOBVYMTmZTTTpd09AAAAAwEAAQAAAQEA6Xgq+gppzOt9nrts
z5Ajf1tHlSesn7XaYuCRVgPb3mOZSuEW3BUdTa0Sr2fk1nzSBpUrfqnN3idyK2g3bD1sbB
RDgUKR+AaNcCN3TpxfxgyVeJhQLvEkEdovzQRUfwrXRfxmE3jkRGfVbvxylrG8p35xcmXy
del46r2i8dj8gIY3tKp0RMvZ4ZlNbhWHPd5OxyHWL9e3gbOSyIyjQgTKZezhzErS/X/KJ/
XYqzyBAqNqZ2Rg1kKiHRlHS6KEI2tyFwYfh+Rb6L9xch1SqOtQhTWirmxS25dpGD2jgalX
eyiw8PmuqTiWCqUmUMx6MdF3tFsirr54K4QA9kqMeaRLtQAAAIEAsUQT0Uhq7l0ugTd4Y9
89bH6eW0fol21/m7B5zkJQepNadUPTs188uvv4inW8n2O3RCanXWHZfCJ1AsR/MEEW2C6Q
DtvqKXHbzfWQlCYSVxB17CjURKa8fNaIAk98zgmNNwO53NBleyrUhPgvm3xt7ACgpzXY5R
wNJL8/a0WOmgwAAACBAP508Op6wWPAwn1JfBZuqQtjcfnJeN4NkYQBdybn0vVu5UdyqSQL
a8hlAzROhA+qJvrlsZgM9h8CyLTyuim8likZHocwO13zBTdVaQ8c2lJvf2uXTIXNZHseS7
ITkfBiO1hSB4z8RDkOr35mGfdbyJIFAwFZF4Xs8WnQF+vHEadrAAAAgQDu329eCwVFf9g0
zNHfZu31p0WtErcsRv57fq+UoPtov8nxUF71oOWe5KSGnGtMICI31kBtPhUbvfOmuqNrgJ
BjgjbPQmi0xSAE5L3QuEKRNjlaE3/WadKBwzhJDtauuYk1ifkrdAVp67XyQ5puyuGgVaQB
NPbrxA9g1IbyeL4/9wAAAAtzcmlua2VzQE5FTwECAwQFBg==
-----END OPENSSH PRIVATE KEY-----
";
private static string openssh_rsa_pw = @"-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCoWhCSaG
psKT80oPIOAlqJAAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQCxOfnmxC1g
mmX18LCBG/X73BoCXQEBEAJz3V9w0FMTgUBebK3fkfOMLNzWn5aMR608wQHOEPYhHffCJf
dJR6lUWLHZz5+EZRfM9oHpysMtToYQoGtb9xM7D5J3lnWZgSea2R7xSeqpClN5nQUMGu8y
2d2S3g9o1vrTdeu71u09QFOx2AXBPUmCjpCuBlNyYEEQMfRMtQ6PDbPdvLM1uylbQqB+/6
jMsCyEFvlLit9GcZ7ItKQN+jsZNmP+f7ytVXLsZTjPLd5mWWrf6T1T1Xt9DBoLXnMrmDiC
f/EXiTYonIO6B0FHvNUCrDzZ7rxIebqePLes1Q2yoUqmC8g+cww3AAADwNRNGSnB7cRpgU
BxdyC0ofj0hUONXjmoT+OGPph9lgZMUnzcon9Z1bpsJuMoRXL14Cdbds7YPmw1YB94Uc+S
8QexLJG0wGel2yvzJhU+QFsLeVRS4tayERFXGCoVpu7RunEYy+hvaiX5CD+luEkiarfj9I
N8+9QUMhDYkELwWBV4rde18Vr8m1P1FuFgqikY0TfSKUGCkvjl4FvDxrxqsewaEkkzwRTI
PhOFCCM5jBPWE+uWVcwKoidvAqcNbmwIzDNZGwXtrAvYYzZa62C/MNLHuFU1weuJiM8sYa
6iKrk681BrrpGcSEZEXd41CFY3BWlIDTozrWn03xFlIpeLG2YMPcuYqFhR/41BJfa+fW5B
Ei0SuUx2xjdRiamqpPku4H6ulkjl0KlFCr976Y2V1JZMQh7bd0huubmf4P4poBk6ZgGpSf
snhcv1HjCVkvfA2yhOcXogzK2HOZgDS5sdSb/kUGURdjlj6ccSzc3OYaHAy9gZXj8Q58pA
4KrXTDlCJ9BTR8PIND54j6gMKu5ijX0TP9nJf/hG9GXx+Xss8T3xdPxdNBapPCcuxGZGJN
H+KFqrpmZYHm0evqFPS7BCUp2VvID6SMgrTYiH0IIbMHLStfdNchtn3EudMbW9vRhxg3Do
npT7Px2JYp87PNoHg2eOx0yGy9r81n2+Wi7SpGCWD8MFfxqd4JIQ8+zjrIRAA1q53uuSUh
m/hlmJWEjQWmcBw5bKrOU0CfGGoT3o6HWYRQ9d5+kKeoS+dOINxxf80G5b7vOrE3PbFxT3
W8zwRd90Msr3LXgPaN0V4RJeBX38e0EvVbArL2MgSs/BC5aID0N0Sqiu+13AqqNYxj6RH2
FA7FN+BBa16fvdi5h5kNnZUrQUKOAImjEE494O8uGKQImviGqB5PY6DJqHPTtn7RSwFx9E
rR7nbAZPTucIN/OIfURxTedhROk0PXjWnwpjuz+UpaMRWqgWTv3bLOuqorqMLibAFLRQEQ
6pR0wbmTpTfEW1jNmAohxB4N14YdSfhThzkCAgpQW6UCLc83y3EDzQFi5862a+2ixULKhK
220tZRk2GU7OFAPRpgQ/sxptGqZbNdOV80wk1MgykoFkoptRkm7bfJcdLHZnP7E6yU0ssP
rCbQlfD0/dD2QE/7HqxHsipNNuEagULjK6WUYXkpx1Siq2vecjZw8dNp7EBh+KlujEm+Dr
R7KFdFCw8DUwrzXwfMIogeRVbW8H0/fQEqsX5oPLTEOnNBjzf8pHush7CCrprbo0ZK3xFp
Vr3LUCoA==
-----END OPENSSH PRIVATE KEY-----
";
private static string openssh_ecdsa = @"-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSP3ZTb37LFvSmKweu03A5s/cwcw3+3
jL1LqQK6D929xY1J2J6S91LXOBpBfz4l+8Ng7sWhu9P/hF/wmB2QRygrAAAAqMq583bKuf
N2AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI/dlNvfssW9KYrB
67TcDmz9zBzDf7eMvUupAroP3b3FjUnYnpL3Utc4GkF/PiX7w2DuxaG70/+EX/CYHZBHKC
sAAAAhALVqID3K/N7IazKNbhrg09r7rLLtjy81RLV+VDxloQnxAAAAC3NyaW5rZXNATkVP
AQIDBA==
-----END OPENSSH PRIVATE KEY-----
";
private static string openssh_ecdsa384 = @"-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSP3ZTb37LFvSmKweu03A5s/cwcw3+3
jL1LqQK6D929xY1J2J6S91LXOBpBfz4l+8Ng7sWhu9P/hF/wmB2QRygrAAAAqMq583bKuf
N2AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI/dlNvfssW9KYrB
67TcDmz9zBzDf7eMvUupAroP3b3FjUnYnpL3Utc4GkF/PiX7w2DuxaG70/+EX/CYHZBHKC
sAAAAhALVqID3K/N7IazKNbhrg09r7rLLtjy81RLV+VDxloQnxAAAAC3NyaW5rZXNATkVP
AQIDBA==
-----END OPENSSH PRIVATE KEY-----
";
private static string openssh_ecdsa521 = @"-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAArAAAABNlY2RzYS
1zaGEyLW5pc3RwNTIxAAAACG5pc3RwNTIxAAAAhQQAa7p4WVga+08qu160BrdzKyRNJMQC
eGhFluNdq73/uaW3qlqoEiaNtc5uB7HHyjCWQTmfzrSRLRZ7YBwUancwyh4Aq6gBgGsXVz
wNvY3kxRDlGrSfMmsHlXz41dgw9wm1fBcf97niexRQ/xGlhkyf7IYlQ/s5BpXF2lS9l0H5
hBippRgAAAEI/9prf//aa38AAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAAhuaXN0cDUyMQ
AAAIUEAGu6eFlYGvtPKrtetAa3cyskTSTEAnhoRZbjXau9/7mlt6paqBImjbXObgexx8ow
lkE5n860kS0We2AcFGp3MMoeAKuoAYBrF1c8Db2N5MUQ5Rq0nzJrB5V8+NXYMPcJtXwXH/
e54nsUUP8RpYZMn+yGJUP7OQaVxdpUvZdB+YQYqaUYAAAAQXwQnI20tNxwLKHPMDmumblD
b0sBqW5Y9248L//x4sWFrkjk6k1LcZno9KLqz8+tIFMJ5sji+axRoUZCXb3cIPzPAAAAC3
NyaW5rZXNATkVP
-----END OPENSSH PRIVATE KEY-----
";
static void Main(string[] args)
{
try
{
var AuthKeys = new Dictionary<string, string>
{
{ "RSA", rsa_key },
{ "OPENSSH RSA", openssh_rsa },
{ "OPENSSH RSA PW", openssh_rsa_pw },
{ "OPENSSH ECDSA", openssh_ecdsa },
{ "OPENSSH ECDSA384", openssh_ecdsa384 },
{ "OPENSSH ECDSA521", openssh_ecdsa521 },
{ "ED25519", ed25519_key },
{ "ED25519 PW", ed25519_pw },
{ "ECDSA", ecdsa_key },
{ "ECDSA PW", ecdsa_pw },
{ "ECDSA384", ecdsa384_key },
{ "ECDSA521", ecdsa_521_key },
};
var runs = 1;
while (true)
{
var rand = new Random();
foreach (var authKey in AuthKeys.OrderBy(x => rand.Next()))
{
Console.WriteLine("################################################################################################");
Console.WriteLine("TEST-RUN: {0}", runs);
Console.WriteLine("Private-Key " + authKey.Key);
var privatekeybytes = new MemoryStream(Encoding.Default.GetBytes(authKey.Value));
PrivateKeyFile auth;
if (authKey.Key.Contains("PW"))
{
auth = new PrivateKeyFile(privatekeybytes, "12345");
}
else
{
auth = new PrivateKeyFile(privatekeybytes);
}
var coninfo = new ConnectionInfo("127.0.0.1", 22222, "user",
new PrivateKeyAuthenticationMethod("user", auth));
var sw = Stopwatch.StartNew();
using (var client = new SshClient(coninfo))
{
client.HostKeyReceived += (sender, e) =>
{
Console.WriteLine("Received-Hostkey: " + e.HostKeyName);
//Console.WriteLine("Hostkey-Bytes: " + BitConverter.ToString(e.FingerPrint));
//e.CanTrust = true;
};
client.Connect();
//Console.WriteLine(client.RunCommand("hostname").Result);
client.Disconnect();
Console.WriteLine("ALL GOOD!");
}
sw.Stop();
Console.WriteLine("Time taken: {0}ms", sw.Elapsed.TotalMilliseconds);
Console.WriteLine("################################################################################################");
runs++;
Thread.Sleep(500); // debug sshd restart
}
}
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
Console.WriteLine("Press Enter to Exit!");
Console.ReadLine();
}
}
}
#set -ex
tmpdir=$(mktemp -d)
key_formats="ecdsa256 ecdsa384 ecdsa521 ed25519 rsa dsa"
kex_mechs="[email protected] ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group-exchange-sha256 diffie-hellman-group14-sha1"
testconfig="${tmpdir}/sshd_test_config"
sshd="/usr/sbin/sshd -Dddddd -f ${testconfig}"
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
while true; do
for kex_mech in $kex_mechs; do
for key_format in $key_formats; do
echo "Starting SSHd - KEX: ${GREEN}${kex_mech}${NC} HostKey: ${BLUE}${key_format}${NC}"
args="-t ${key_format}"
bits=""
if [ "${key_format}" != "ed25519" ]; then
type=$(echo ${key_format} | sed 's/[0-9]*//g')
bits=$(echo ${key_format} | sed 's/[^0-9]*//g')
args="-t $type"
fi
[ -n "$bits" ] && args="$args -b $bits"
cp ${tmpdir}/ssh_host_${key_format}_key ${tmpdir}/ssh_host_${key_format}_key.bak
yes y | ssh-keygen $args -N '' -f ${tmpdir}/ssh_host_${key_format}_key
cat >${testconfig} <<EOF
Port 22222
HostKey ${tmpdir}/ssh_host_${key_format}_key
LogLevel DEBUG3
KexAlgorithms $kex_mech
HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,ssh-rsa,ssh-dss
EOF
$sshd
r=$?
if [ $r -ne 0 -a $r -ne 255 ]; then
exit $r
fi
done
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment