SshSharp.Extensions.DependencyInjection 1.1.0

dotnet add package SshSharp.Extensions.DependencyInjection --version 1.1.0
                    
NuGet\Install-Package SshSharp.Extensions.DependencyInjection -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SshSharp.Extensions.DependencyInjection" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SshSharp.Extensions.DependencyInjection" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="SshSharp.Extensions.DependencyInjection" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SshSharp.Extensions.DependencyInjection --version 1.1.0
                    
#r "nuget: SshSharp.Extensions.DependencyInjection, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SshSharp.Extensions.DependencyInjection@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SshSharp.Extensions.DependencyInjection&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=SshSharp.Extensions.DependencyInjection&version=1.1.0
                    
Install as a Cake Tool

SshSharp.Extensions.DependencyInjection

Dependency injection for SshSharp: named SSH endpoints from configuration, a factory for new connections, a shared connection that is opened again when it drops, and a health check.

builder.Services.AddSshClient("deploy").BindConfiguration("Ssh:Deploy").ValidateOnStart();
builder.Services.AddHealthChecks().AddSsh("deploy");

// A new connection the caller owns:
await using var client = await clientFactory.ConnectAsync("deploy", cancellationToken);

// The shared one, which the provider owns and reconnects:
var shared = await connections.GetClientAsync("deploy", cancellationToken);

// An SFTP session on the shared connection, which the caller owns (also the session factory of SftpFileProvider and SftpFileSystem):
await using var sftp = await connections.OpenSftpAsync("deploy", cancellationToken);

// The endpoint as a keyed service, an HttpClient through it, and its connection's changes:
public sealed class Backups([FromKeyedServices("deploy")] ISshEndpoint deploy) { /* deploy.GetClientAsync(ct) ... */ }
builder.Services.AddHttpClient("internal-api").UseSshTunnel("deploy");
await foreach (var change in connections.WatchAsync("deploy", cancellationToken)) { /* Connected, Disconnected, Reconnected */ }

Unknown hosts fail by default (AcceptNewHostKeys opts in to recording them). In containers, pin the server's host key with HostKeyFingerprints (fingerprints or .pub lines) and give private keys as values with PrivateKeys (for example Ssh__Deploy__PrivateKeys__0__Key from a secret), with no files in ~/.ssh. Bastions are settings too (JumpHosts, each with its own user, keys and pins), and UseAgent offers the SSH agent's keys. See the dependency injection guide.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 151 10/20/2026
1.0.0 2,112 10/17/2026