SSH.NET Extension to authenticate via OpenSSH Agent and PuTTY Pageant
MIT License
SSH.NET Extension to authenticate via OpenSSH Agent and PuTTY Pageant
Works on my machine - WIP
Note: Only with netstandard 2.1 it contains support for Unix Domain Sockets to use ssh-agent on Linux.
var agent = new SshAgent();
var keyFile = new PrivateKeyFile("test.key");
agent.AddIdentity(keyFile);
var keys = agent.RequestIdentities();
using var client = new SshClient("ssh.foo.com", "root", keys);
client.Connect();
Console.WriteLine(client.RunCommand("hostname").Result);
var agent = new Pageant();
var keyFile = new PrivateKeyFile("test.key");
agent.AddIdentity(keyFile);
var keys = agent.RequestIdentities();
using var client = new SshClient("ssh.foo.com", "root", keys);
client.Connect();
Console.WriteLine(client.RunCommand("hostname").Result);
If you want to avoid the Resharper Warning "Co-variant array conversion": https://www.jetbrains.com/help/resharper/CoVariantArrayConversion.html
var agent = new Pageant();
var keyFile = new PrivateKeyFile("test.key");
agent.AddIdentity(keyFile);
var keys = agent.RequestIdentities();
using var client = new SshClient("ssh.foo.com", "root", keys.ToArray<IPrivateKeyFile>());
client.Connect();
Console.WriteLine(client.RunCommand("hostname").Result);