Rebex.FileServer
8.0.9797
Prefix Reserved
dotnet add package Rebex.FileServer --version 8.0.9797
NuGet\Install-Package Rebex.FileServer -Version 8.0.9797
<PackageReference Include="Rebex.FileServer" Version="8.0.9797" />
<PackageVersion Include="Rebex.FileServer" Version="8.0.9797" />
<PackageReference Include="Rebex.FileServer" />
paket add Rebex.FileServer --version 8.0.9797
#r "nuget: Rebex.FileServer, 8.0.9797"
#:package Rebex.FileServer@8.0.9797
#addin nuget:?package=Rebex.FileServer&version=8.0.9797
#tool nuget:?package=Rebex.FileServer&version=8.0.9797
Rebex File Server - The C# SFTP and FTP server library for .NET
Rebex File Server is an SFTP, FTP, SCP and SSH server library for .NET. It provides secure remote file system access over an SSH channel using the SFTP or SCP protocol, or over a TLS channel using FTP protocol. For client-side access, use Rebex.Sftp or Rebex.Ftp.
10+ years of active development. Rebex File Server has been continuously developed and maintained since 2015, with regular updates and new features.
Key features
- SFTP server - SFTP v3/v4 over SSH v2, compatible with OpenSSH, WinSCP, PuTTY, and other clients
- FTP server - FTP with explicit and implicit TLS/SSL modes, passive mode port range configuration
- SCP server - SCP file transfers via virtual shell
- SSH server - SSH shell with predefined or custom commands
- SSH tunneling - outgoing SSH port forwarding, TCP tunnels through the server
- User authentication - password, public key, X.509 client certificates, multi-factor (password + public key), custom authentication providers
- Virtual file systems - local file system, memory-based, or custom file system providers; mount-capable composite file systems
- Access control - fine-grained access control per user
- Cryptographic algorithms including PQC - ML-KEM, ML-DSA, Ed25519, ChaCha20/Poly1305, AES/GCM, ECDH, ECDSA, RSA, and more
- FIPS 140-3 compliant mode
Built with Rebex File Server
File Server library is the core of following real-world applications:
- Rebex Tiny SFTP Server - free, minimalist open-source SFTP server with full source code on GitHub
- Rebex Buru SFTP Server - commercial, full-featured SFTP server for Windows
Getting started
Launch an SFTP server
// create a server instance
var server = new FileServer();
// bind SFTP (runs over SSH) to port 22
server.Bind(22, FileServerProtocol.Sftp);
// load a server private key
server.Keys.Add(new SshPrivateKey("server-key.ppk", "password"));
// add a user (specify username, password and virtual root path)
server.Users.Add("user01", "password", @"c:\data\user01");
// start the server in the background
server.Start();
Launch an FTP server (TLS)
// create a server instance
var server = new FileServer();
// bind FTP to port 21 (secured by TLS)
server.Bind(21, FileServerProtocol.Ftp);
// load a server certificate
server.Certificates.Add(CertificateChain.LoadPfx("cert.pfx", certPassword));
// add a user
server.Users.Add("user01", "password", @"c:\data\user01");
// start the server in the background
server.Start();
Bind multiple protocols
// bind SFTP and virtual shell (both over SSH) to port 22
server.Bind(22, FileServerProtocol.Sftp);
server.Bind(22, FileServerProtocol.Shell);
// bind FTP (explicit TLS) to port 21
server.Bind(21, FileServerProtocol.Ftp);
// bind FTP (implicit TLS) to port 990
server.Bind(990, FileServerProtocol.FtpImplicit);
Custom authentication provider
server.Authentication += (sender, e) =>
{
// try authenticating the user against a custom user database
if (MyUserDatabase.TryAuthenticate(e.UserName, e.Password, out var myUser))
{
e.Accept(new FileServerUser(myUser.UserName, null, myUser.VirtualRoot));
}
else
{
e.Reject();
}
};
Virtual file systems
// mount-capable composite file system
var virtualFS = new MountCapableFileSystemProvider();
// mount local directories
var homeFS = new LocalFileSystemProvider(@"c:\data\user01", FileSystemType.ReadWrite);
virtualFS.Mount("/home", homeFS);
// assign to a user
var user = new FileServerUser("user01", "password");
server.Users.Add(user);
user.SetFileSystem(virtualFS);
Track file transfers
server.FileUploaded += (sender, e) =>
{
Console.WriteLine("User '{0}' uploaded '{1}' ({2} bytes)",
e.User.Name, e.FullPath, e.BytesTransferred);
};
server.FileDownloaded += (sender, e) =>
{
Console.WriteLine("User '{0}' downloaded '{1}' ({2} bytes)",
e.User.Name, e.FullPath, e.BytesTransferred);
};
Supported platforms
- .NET 10 on Windows, Linux, macOS, Android, iOS/tvOS
- .NET 9 on Windows, Linux, macOS, Android, iOS/tvOS
- .NET 8 on Windows, Linux, macOS, Android, iOS/tvOS
- .NET 7 on Windows, Linux, macOS, Android, iOS/tvOS
- .NET 6 on Windows, Linux, macOS
- .NET 5 on Windows, Linux, macOS
- .NET Framework 4.0, 4.5.x, 4.6.x, 4.7.x, 4.8.x
- .NET Framework 3.5 SP1
- .NET Core 3.1 on Windows, Linux, macOS
- Xamarin.Android (10.1 and higher; via .NET Standard 2.1)
- Xamarin.iOS (13.10 and higher; via .NET Standard 2.1)
- Mono 6.0 or higher on Linux and macOS
Supported architectures: x86, x64, AMD64.
Licensing
This is a paid commercial product with a free 30-day trial.
- Trial mode: Start your free 30-day trial by generating your trial key
- Licensed mode: Buy Rebex File Server and get your full license key
When the full license key is provided, NuGet.org repository can be used to retrieve versions of Rebex components covered by your support contract.
Support
Talk to real people. No scripted or AI responses. Support is provided directly by the engineers who design and build the library.
Email us at support@rebex.net or visit rebex.net/support.
Documentation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 is compatible. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net35 is compatible. net40 is compatible. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 is compatible. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.1
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
.NETFramework 3.5
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
.NETFramework 4.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
.NETFramework 4.6
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
.NETStandard 2.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
.NETStandard 2.1
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
net10.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
net5.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
net6.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
net7.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
net8.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
-
net9.0
- Rebex.Common (= 8.0.9797)
- Rebex.Networking (= 8.0.9797)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Rebex.FileServer:
| Package | Downloads |
|---|---|
|
Rebex.TotalPack
Rebex Total Pack is a metapackage that includes all Rebex libraries such as Rebex SFTP, Rebex FTP, Rebex SSH Shell, and more. See https://www.rebex.net/total-pack/ for a complete list. This is a paid commercial product with a free 30-day trial: - Trial mode: Start your free 30-day trial by generating your trial key at https://rebex.net/support/trial-key.aspx - Licensed mode: Purchase the product at https://rebex.net/shop/ and get your full license key at https://rebex.net/protected/nuget When the full license key is provided, NuGet.org repository can be used to retrieve versions of Rebex components covered by your support contract. Supported platforms: - .NET 10 on Windows, Linux, macOS, Android, iOS/tvOS - .NET 9 on Windows, Linux, macOS, Android, iOS/tvOS - .NET 8 on Windows, Linux, macOS, Android, iOS/tvOS - .NET 7 on Windows, Linux, macOS, Android, iOS/tvOS - .NET 6 on Windows, Linux, macOS - .NET 5 on Windows, Linux, macOS - .NET Framework 4.0, 4.5.x, 4.6.x, 4.7.x, 4.8.x - .NET Framework 3.5 SP1 - .NET Core 3.1 on Windows, Linux, macOS - Xamarin.Android (10.1 and higher; via .NET Standard 2.1) - Xamarin.iOS (13.10 and higher; via .NET Standard 2.1) - Mono 6.0 or higher on Linux and macOS |
|
|
Carbon.Feature.Network
Provides common networking features and functions. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Rebex.FileServer:
| Repository | Stars |
|---|---|
|
rebexnet/RebexTinySftpServer
A minimalist SFTP server for testing purposes.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 8.0.9797 | 23 | 10/28/2026 |
| 8.0.9709 | 12,039 | 8/3/2026 |
| 8.0.9673 | 2,154 | 6/25/2026 |
| 8.0.9663 | 269 | 6/24/2026 |
| 8.0.9643-rc.4 | 114 | 5/27/2026 |
| 8.0.9531-rc.3 | 182 | 2/4/2026 |
| 8.0.9440-rc.2 | 274 | 11/5/2025 |
| 8.0.9392-rc.1 | 328 | 9/19/2025 |
| 7.0.9796 | 27 | 10/28/2026 |
| 7.0.9649 | 1,456 | 6/23/2026 |
| 7.0.9561 | 4,179 | 3/6/2026 |
| 7.0.9448 | 6,286 | 11/12/2025 |
| 7.0.9391 | 2,876 | 9/17/2025 |
| 7.0.9313 | 13,256 | 6/30/2025 |
| 7.0.9209 | 16,937 | 3/20/2025 |
| 7.0.9147 | 3,357 | 1/16/2025 |
| 7.0.9119 | 2,075 | 12/19/2024 |
| 7.0.9083 | 3,714 | 11/13/2024 |
| 6.0.9280 | 393 | 6/30/2025 |
| 6.0.9082 | 418 | 11/13/2024 |