SSH.NET
SSH.NET は、並列処理用に最適化された .NET 用の Secure Shell (SSH-2) ライブラリです。
主な特長
- 同期メソッドと非同期メソッドの両方を使用した SSH コマンドの実行
- 同期操作と非同期操作の両方のための SFTP 機能
- SCP機能
- リモート、動的、ローカルのポート転送
- インタラクティブなシェル/ターミナルの実装
- 公開鍵、パスワード、多要素を含むキーボードインタラクティブな方法による認証
- SOCKS4、SOCKS5、または HTTP プロキシ経由の接続
使用方法
コマンドを実行する
using ( var client = new SshClient ( " sftp.foo.com " , " guest " , new PrivateKeyFile ( " path/to/my/key " ) ) )
{
client . Connect ( ) ;
using SshCommand cmd = client . RunCommand ( " echo 'Hello World!' " ) ;
Console . WriteLine ( cmd . Result ) ; // "Hello World!n"
}
SFTPを使用してファイルをアップロードしてリストする
using ( var client = new SftpClient ( " sftp.foo.com " , " guest " , " pwd " ) )
{
client . Connect ( ) ;
using ( FileStream fs = File . OpenRead ( @"C:tmptest-file.txt" ) )
{
client . UploadFile ( fs , " /home/guest/test-file.txt " ) ;
}
foreach ( ISftpFile file in client . ListDirectory ( " /home/guest/ " ) )
{
Console . WriteLine ( $" { file . FullName } { file . LastWriteTime } " ) ;
}
}
主な種類
このライブラリで提供される主なタイプは次のとおりです。
- Renci.SshNet.SshClient
- Renci.SshNet.SftpClient
- Renci.SshNet.ScpClient
- Renci.SshNet.PrivateKeyFile
- Renci.SshNet.SshCommand
- Renci.SshNet.ShellStream
追加の文書
暗号化方式
SSH.NET は次の暗号化方式をサポートしています。
- aes128-ctr
- aes192-ctr
- aes256-ctr
- aes128-gcm @openssh.com
- aes256-gcm @openssh.com
- チャチャ20-ポリ1305 @openssh.com
- aes128-cbc
- aes192-cbc
- aes256-cbc
- 3des-cbc
鍵交換方法
SSH.NET は、次のキー交換方法をサポートしています。
- カーブ25519-sha256
- カーブ25519-sha256 @libssh.org
- ecdh-sha2-nistp256
- ecdh-sha2-nistp384
- ecdh-sha2-nistp521
- ディフィー・ヘルマン・グループ・エクスチェンジ・シャ256
- diffie-helman-グループ-交換-sha1
- ディフィー・ヘルマン・グループ16-sha512
- ディフィー・ヘルマン・グループ14-sha256
- ディフィー・ヘルマン・グループ14-sha1
- ディフィー・ヘルマン・グループ1-sha1
公開鍵認証
SSH.NET は、次の秘密キー形式をサポートしています。
- RSAイン
- OpenSSL の従来の PEM 形式 (「BEGIN RSA PRIVATE KEY」)
- OpenSSL PKCS#8 PEM 形式 (「BEGIN PRIVATE KEY」、「BEGIN ENCRYPTED PRIVATE KEY」)
- ssh.com 形式 (「SSH2 暗号化秘密キーの開始」)
- OpenSSH 鍵の形式 (「BEGIN OPENSSH PRIVATE KEY」)
- DSA で
- OpenSSL の従来の PEM 形式 (「BEGIN DSA PRIVATE KEY」)
- OpenSSL PKCS#8 PEM 形式 (「BEGIN PRIVATE KEY」、「BEGIN ENCRYPTED PRIVATE KEY」)
- ssh.com 形式 (「SSH2 暗号化秘密キーの開始」)
- ECDSA 256/384/521 インチ
- OpenSSL の従来の PEM 形式 (「BEGIN EC PRIVATE KEY」)
- OpenSSL PKCS#8 PEM 形式 (「BEGIN PRIVATE KEY」、「BEGIN ENCRYPTED PRIVATE KEY」)
- OpenSSH 鍵形式 (「BEGIN OPENSSH PRIVATE KEY」)
- ED25519 で
- OpenSSL PKCS#8 PEM 形式 (「BEGIN PRIVATE KEY」、「BEGIN ENCRYPTED PRIVATE KEY」)
- OpenSSH 鍵形式 (「BEGIN OPENSSH PRIVATE KEY」)
OpenSSL の従来の PEM 形式の秘密キーは、次のいずれかの暗号化方式を使用して暗号化できます。
- DES-EDE3-CBC
- DES-EDE3-CFB
- DES-CBC
- AES-128-CBC
- AES-192-CBC
- AES-256-CBC
OpenSSL PKCS#8 PEM 形式の秘密キーは、BouncyCastle がサポートする任意の暗号化方式を使用して暗号化できます。
ssh.com 形式の秘密キーは、次のいずれかの暗号化方式を使用して暗号化できます。
OpenSSH キー形式の秘密キーは、次のいずれかの暗号化方式を使用して暗号化できます。
- 3des-cbc
- aes128-cbc
- aes192-cbc
- aes256-cbc
- aes128-ctr
- aes192-ctr
- aes256-ctr
- aes128-gcm @openssh.com
- aes256-gcm @openssh.com
- チャチャ20-ポリ1305 @openssh.com
ホストキーアルゴリズム
SSH.NET は、次のホスト キー アルゴリズムをサポートしています。
- ssh-ed25519
- ecdsa-sha2-nistp256
- ecdsa-sha2-nistp384
- ecdsa-sha2-nistp521
- rsa-sha2-512
- rsa-sha2-256
- ssh-rsa
- ssh-dss
メッセージ認証コード
SSH.NET は次の MAC アルゴリズムをサポートしています。
- hmac-sha2-256
- hmac-sha2-512
- hmac-sha1
- hmac-sha2-256-etm @openssh.com
- hmac-sha2-512-etm @openssh.com
- hmac-sha1-etm @openssh.com
圧縮
SSH.NET は次の圧縮アルゴリズムをサポートしています。
- なし (デフォルト)
- ズリブ@openssh.com
フレームワークのサポート
SSH.NET は、次のターゲット フレームワークをサポートしています。
- .NETFramework 4.6.2 (以降)
- .NET Standard 2.0 および 2.1
- .NET 6 (以降)
図書館の構築
このライブラリには、最新の .NET SDK 以外に構築するための特別な要件はありません。 COTRIBUTING.md も参照してください。
SSH.NETのサポート
あなたまたはあなたの会社はプロジェクトでSSH.NETに依存していますか?私たちの継続を奨励し、私たちの仕事に感謝していることを示したい場合は、GitHub スポンサーを通じてスポンサーになることを検討してください。