SSH.NET은 병렬 처리에 최적화된 .NET용 SSH-2(Secure Shell) 라이브러리입니다.
동기식 및 비동기식 방법을 모두 사용하여 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); // "안녕하세요!n"}
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 파일 client.ListDirectory("/home/guest/")){Console.WriteLine($"{file.FullName} {file.LastWriteTime}");}}
이 라이브러리에서 제공하는 주요 유형은 다음과 같습니다.
Renci.SshNet.Ssh클라이언트
Renci.SshNet.Sftp클라이언트
Renci.SshNet.Scp클라이언트
Renci.SshNet.PrivateKey파일
Renci.SshNet.SshCommand
Renci.SshNet.ShellStream
추가 예시
API 브라우저
SSH.NET은 다음 암호화 방법을 지원합니다.
aes128-ctr
aes192-ctr
aes256-ctr
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
SSH.NET은 다음과 같은 키 교환 방법을 지원합니다.
curve25519-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-그룹-교환-sha256
디피-헬먼-그룹-교환-sha1
디피-헬먼-group16-sha512
디피-헬먼-group14-sha256
디피-헬먼-group14-sha1
디피-헬먼-group1-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 개인 키")
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 개인 키")
ED25519
OpenSSL PKCS#8 PEM 형식("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
OpenSSH 키 형식("BEGIN OPENSSH 개인 키")
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 형식의 개인 키는 다음 암호화 방법 중 하나를 사용하여 암호화할 수 있습니다.
3des-cbc
OpenSSH 키 형식의 개인 키는 다음 암호화 방법 중 하나를 사용하여 암호화할 수 있습니다.
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
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
SSH.NET은 다음 압축 알고리즘을 지원합니다.
없음(기본값)
SSH.NET은 다음 대상 프레임워크를 지원합니다.
.NETFramework 4.6.2(이상)
.NET 표준 2.0 및 2.1
.NET 6(이상)
라이브러리에는 최신 .NET SDK 외에 빌드하기 위한 특별한 요구 사항이 없습니다. CONTRIBUTING.md도 참조하세요.
귀하 또는 귀하의 회사는 프로젝트에서 SSH.NET을 사용합니까? 우리가 계속해서 나아갈 수 있도록 격려하고 우리의 작업에 감사한다는 것을 보여주고 싶다면 GitHub 후원자를 통해 후원자가 되는 것을 고려해 보십시오.