
Pure Java SSH 클라이언트/서버 라이브러리로, SSH-2 프로토콜을 구현하며 여러 암호화 방식, 키 교환, 인증 방법, SFTP, SCP 및 보안 원격 접속을 위한 포트 포워딩을 지원합니다.

Apache MINA SSHD는 클라이언트 및 서버 측에서 SSH 프로토콜을 지원하는 100% 순수 자바 라이브러리입니다. Unix 운영 체제의 SSH 클라이언트 또는 SSH 서버를 대체하는 것을 목표로 하지 않으며, SSH 지원이 필요한 Java 기반 애플리케이션을 위한 지원을 제공합니다.
이 라이브러리는 여러 I/O 백엔드를 활용할 수 있습니다:
AsynchronousSocketChannels를 사용합니다.server-sig-algs 확장에 대한 기본 클라이언트 및 서버 구현도 제공합니다.supported - DRAFT 05 - 섹션 4.4supported2 - DRAFT 13 섹션 5.4versions - DRAFT 09 섹션 4.6vendor-id - DRAFT 09 - 섹션 4.4acl-supported - DRAFT 11 - 섹션 5.4newline - DRAFT 09 섹션 4.3md5-hash, md5-hash-handle - DRAFT 09 - 섹션 9.1.1check-file-handle, check-file-name - eddsa 선택 모듈 필요), [email protected], [email protected]
, [email protected], [email protected], [email protected]
, [email protected], [email protected], [email protected]참고: 위 목록에는 코드에서 지원되는 모든 보안 설정이 포함되어 있습니다. 그러나 최신 권장 사항에 따라 기본 클라이언트/서버 설정에는 현재 안전하다고 간주되는 보안 설정만 포함됩니다. 안전하지 않은 설정을 포함하려는 사용자는 명시적으로 포함시켜야 합니다. 다음 설정은 더 이상 사용되지 않으며 기본 설정에 포함되지 않습니다:
주의사항:: RFC 8332 - 섹션 3.31에 따르면
구현 경험에 따르면 SSH 서버가 지원하지 않는 공개 키 알고리즘을 시도하는 클라이언트에게 인증 패널티를 적용하는 서버가 있습니다.
"server-sig-algs" 확장을 구현하지 않는 서버에 대해 RSA 키로 인증할 때, 클라이언트는 인증 패널티를 피하기 위해 기본적으로 "ssh-rsa" 서명을 사용할 수 있습니다(MAY). 새로운 rsa-sha2-* 알고리즘이 "ssh-rsa"를 비활성화할 만큼 충분히 널리 채택되면, 클라이언트는 새 알고리즘 중 하나를 기본값으로 사용할 수 있습니다(MAY).
즉, 이러한(및 관련) 문제가 발생하는 사용자는 문제를 피하기 위해 지원되는 보안 설정을 명시적으로 수정해야 합니다.
특별 공지: ssh-rsa는 여전히 많은 시스템/사용자가 사용하고 있기 때문에 기본 설정의 일부로 남아 있습니다.
그러나 향후 버전에서는 기본 설정에서 제거될 예정입니다. 따라서 사용자들이 가능한 한 빨리 다른 키(예: ECDSA,
ED25519)로 전환할 것을 강력히 권장합니다.
버그 보고 및 개선 사항이나 기능 요청은 GitHub 이슈 트래커 또는 Apache 이슈 트래커에 등록할 수 있습니다.
보안 취약점과 같은 민감한 이슈는 두 이슈 트래커 중 어느 곳을 통해서도 보고하지 말고 비공개 채널을 통해 보고해야 합니다.
Java 8+ (버전 1.3 기준)
코드는 핵심 추상 slf4j-api 모듈만 필요로 합니다. 로깅 API의 실제 구현은 다양한 기존 어댑터 중에서 선택할 수 있습니다.
sshd-common - 프로젝트 전반에서 사용되는 기본 클래스와 클라이언트 또는 서버 네트워크 지원이 필요하지 않은 코드를 포함합니다.
sshd-core - 연결, 전송, 채널, 포워딩 등을 구현하는 기본 SSH 클라이언트/서버 코드를 포함합니다.
sshd-sftp - 서버 측 SFTP 서브시스템과 SFTP 클라이언트 코드를 포함합니다.
sshd-scp - 서버 측 SCP 명령 처리기와 SCP 클라이언트 코드를 포함합니다.
sshd-ldap - LDAP 서버를 사용하는 서버 측 암호 및 공개 키 인증기를 포함합니다.
sshd-git - JGit SSH 세션 팩토리 대체 구현을 포함합니다.
sshd-osgi - sshd-common과 sshd-core를 결합한 아티팩트로, OSGi 환경에 배포할 수 있습니다.
sshd-putty - PUTTY 키 파일을 파싱할 수 있는 코드를 포함합니다.
sshd-openpgp - OpenPGP 키 파일을 파싱할 수 있는 코드를 포함합니다(일부 제한 사항 있음 - 관련 섹션 참조)
sshd-cli - 명령줄 클라이언트/서버용 간단한 템플릿을 포함합니다 - Linux ssh/sshd 명령과 유사한 룩앤필(look-and-feel)을 제공하는 데 사용됩니다.
sshd-contrib - 현재 검토 중이며 다른 아티팩트 중 하나로 편입되거나 완전히 새로운 아티팩트가 될 수 있는 실험적 코드입니다 (예: sshd-putty가 이렇게 발전했습니다).
테스트 포함
mvn clean install
테스트 제외
mvn -Pquick clean install
copy-file, copy-data - DRAFT 00 - 섹션 6, 7space-available - DRAFT 09 - 섹션 9.2filename-charset, filename-translation-control - DRAFT 13 - 섹션 6 - 클라이언트 측 전용