
Libreria client/server SSH in puro Java che implementa il protocollo SSH-2 con supporto per molteplici cifrari, scambi di chiavi, metodi di autenticazione, SFTP, SCP e inoltro delle porte per l'accesso remoto sicuro.

Apache MINA SSHD è una libreria Java pura al 100% per supportare i protocolli SSH sia lato client che server. Non mira a sostituire il client SSH o il server SSH dei sistemi operativi Unix, ma piuttosto fornisce supporto per applicazioni basate su Java che richiedono supporto SSH.
La libreria può sfruttare diversi back-end I/O:
AsynchronousSocketChannel di Java.server-sig-algs lato client e server.supported - DRAFT 05 - sezione 4.4supported2 - DRAFT 13 sezione 5.4versions - DRAFT 09 Sezione 4.6vendor-id - DRAFT 09 - sezione 4.4acl-supported - DRAFT 11 - sezione 5.4newline - DRAFT 09 Sezione 4.3md5-hash, md5-hash-handle - DRAFT 09 - sezione 9.1.1check-file-handle, - eddsa), [email protected], [email protected]
, [email protected], [email protected], [email protected]
, [email protected], [email protected], [email protected]Nota: L'elenco sopra contiene tutte le impostazioni di sicurezza supportate nel codice. Tuttavia, in conformità con le ultime raccomandazioni, la configurazione predefinita client/server include solo le impostazioni di sicurezza attualmente considerate sicure. Gli utenti che desiderano includere impostazioni non sicure devono farlo esplicitamente. Le seguenti impostazioni sono state deprecate e non sono più incluse nella configurazione predefinita:
Avvertenza: Secondo RFC 8332 - sezione 3.3
L'esperienza di implementazione ha dimostrato che esistono server che applicano penalità di autenticazione ai client che tentano algoritmi a chiave pubblica non supportati dal server SSH.
Quando si esegue l'autenticazione con una chiave RSA contro un server che non implementa l'estensione "server-sig-algs", i client POSSONO ricorrere a una firma "ssh-rsa" per evitare penalità di autenticazione. Quando i nuovi algoritmi rsa-sha2-* saranno stati sufficientemente adottati da giustificare la disabilitazione di "ssh-rsa", i client POSSONO utilizzare uno dei nuovi algoritmi per impostazione predefinita.
Ciò significa che gli utenti che incontrano questo problema (e problemi correlati) devono modificare le impostazioni di sicurezza supportate esplicitamente per evitarlo.
Avviso speciale: ssh-rsa è stato lasciato come parte della configurazione predefinita poiché molti sistemi/utenti lo utilizzano ancora.
Tuttavia, nelle versioni future verrà rimosso dal default. Pertanto, raccomandiamo vivamente agli utenti di migrare
verso altre chiavi (ad es. ECDSA, ED25519) il prima possibile.
I rapporti di bug e le richieste di miglioramento o funzionalità possono essere inviati al tracciatore di problemi GitHub o al tracciatore di problemi Apache.
Le questioni sensibili, come le vulnerabilità di sicurezza, devono essere segnalate attraverso canali privati, non tramite nessuno dei tracker.
Java 8+ (a partire dalla versione 1.3)
Il codice richiede solo il modulo astratto core slf4j-api. L'implementazione effettiva dell'API di logging può essere selezionata tra i molti adattatori esistenti.
sshd-common - contiene le classi di base utilizzate in tutto il progetto, nonché codice che non richiede supporto di rete client o server.
sshd-core - contiene il codice client/server SSH di base che implementa la connessione, il trasporto, i canali, il forwarding, ecc.
sshd-sftp - contiene il sottosistema SFTP lato server e il codice client SFTP.
sshd-scp - contiene il gestore di comandi SCP lato server e il codice client SCP.
sshd-ldap - contiene autenticatori di password e chiave pubblica lato server che utilizzano un server LDAP.
sshd-git - contiene sostituti per la factory di sessioni SSH di JGit.
sshd-osgi - contiene un artefatto che combina sshd-common e sshd-core in modo da poter essere distribuito in ambienti OSGi.
sshd-putty - contiene codice in grado di analizzare i file chiave PUTTY.
sshd-openpgp - contiene codice in grado di analizzare i file chiave OpenPGP (con alcune limitazioni - vedere la sezione pertinente)
sshd-cli - contiene template semplici per client/server a riga di comando - utilizzato per fornire un aspetto simile ai comandi Linux ssh/sshd.
sshd-contrib - codice sperimentale attualmente in fase di revisione che potrebbe trovare posto in uno degli altri artefatti (o diventare un artefatto completamente nuovo - ad esempio, sshd-putty si è evoluto in questo modo).
Inclusi i test
mvn clean install
Senza test
mvn -Pquick clean install
check-file-namecopy-file, copy-data - DRAFT 00 - sezioni 6, 7space-available - DRAFT 09 - sezione 9.2filename-charset, filename-translation-control - DRAFT 13 - sezione 6 - solo lato client