.NET フレームワークでは、どのバージョンでも SFTP はサポートされていません。
SFTP にはサードパーティのライブラリを使用する必要があります。
WinSCP .NET アセンブリを使用できます。WinSCP NuGet パッケージもあります。
簡単な SFTP アップロード C# の例:
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...="
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Upload files
session.PutFiles(@"d:\toupload\*", "/home/user/").Check();
}
他にもたくさんの例があります。
上記のように、C#、VB.NET、PowerShell などの SFTP コード テンプレートを WinSCP GUI に生成させることができます。

アセンブリは WinSCP スクリプトの単なるラッパーであるため、完全にネイティブな .NET コードではありません。そのため、.NET フレームワークのすべてのユース ケースに適合するわけではありません。主にタスクの自動化に適していますが、GUI アプリケーションの開発には多少適していますが、実際には Web アプリケーションには適していません。
完全にネイティブな .NET SFTP ライブラリについては、SSH.NETを参照してください。奇妙なことに、まだどの回答にも言及されていません。
(私は WinSCP の作者です)
Windows 10 には、コマンドライン OpenSSHsftpクライアントも付属しています。古いバージョンの Windows 用にダウンロードすることもできます。