
Biblioteca de cliente/servidor SSH Java pura que implementa el protocolo SSH-2 con soporte para múltiples cifrados, intercambios de claves, métodos de autenticación, SFTP, SCP y reenvío de puertos para acceso remoto seguro.

Apache MINA SSHD es una biblioteca 100% Java pura para dar soporte a los protocolos SSH tanto en el lado del cliente como en el del servidor. No pretende ser un reemplazo del cliente SSH o del servidor SSH de los sistemas operativos Unix, sino proporcionar soporte para aplicaciones basadas en Java que requieran compatibilidad con SSH.
La biblioteca puede aprovechar varios back-ends de E/S:
AsynchronousSocketChannels de Java.server-sig-algs.supported - DRAFT 05 - section 4.4supported2 - DRAFT 13 section 5.4versions - DRAFT 09 Section 4.6vendor-id - DRAFT 09 - section 4.4acl-supported - DRAFT 11 - section 5.4newline - DRAFT 09 Section 4.3md5-hash, md5-hash-handle - DRAFT 09 - section 9.1.1check-file-handle, - eddsa), [email protected], [email protected]
, [email protected], [email protected], [email protected]
, [email protected], [email protected], [email protected]Nota: La lista anterior contiene todos los ajustes de seguridad admitidos en el código. Sin embargo, de acuerdo con las recomendaciones más recientes, la configuración predeterminada de cliente/servidor incluye únicamente los ajustes de seguridad que actualmente se consideran seguros de usar. Los usuarios que deseen incluir los ajustes no seguros deben hacerlo explícitamente. Los siguientes ajustes han sido declarados obsoletos y ya no se incluyen en la configuración predeterminada:
Advertencia: Según RFC 8332 - sección 3.31
La experiencia de implementación ha demostrado que hay servidores que aplican penalizaciones de autenticación a los clientes que intentan utilizar algoritmos de clave pública que el servidor SSH no admite.
Al autenticarse con una clave RSA contra un servidor que no implementa la extensión "server-sig-algs", los clientes PUEDEN usar por defecto una firma "ssh-rsa" para evitar penalizaciones de autenticación. Cuando los nuevos algoritmos rsa-sha2-* hayan sido adoptados de forma suficientemente amplia como para justificar la desactivación de "ssh-rsa", los clientes PUEDEN usar por defecto uno de los nuevos algoritmos.
Esto significa que los usuarios que encuentren este problema (y otros relacionados) deben modificar los ajustes de seguridad admitidos explícitamente para evitar el problema.
Aviso especial: ssh-rsa se mantuvo como parte de la configuración predeterminada porque todavía hay muchos sistemas/usuarios
que lo utilizan. Sin embargo, en una versión futura se eliminará de la configuración predeterminada. Por lo tanto, recomendamos encarecidamente a los usuarios migrar
a otras claves (por ejemplo, ECDSA, ED25519) lo antes posible.
Los informes de errores y las solicitudes de mejoras o funciones se pueden presentar en el rastreador de incidencias de GitHub o en el rastreador de incidencias de Apache.
Los problemas sensibles, como las vulnerabilidades de seguridad, deben informarse a través de canales privados, no mediante ninguno de los rastreadores de incidencias.
Java 8+ (a partir de la versión 1.3)
El código solo requiere el módulo abstracto principal slf4j-api. La implementación real de la API de registro se puede seleccionar entre los muchos adaptadores existentes.
sshd-common - contiene las clases básicas utilizadas en todo el proyecto, así como código que no requiere soporte de red de cliente o servidor.
sshd-core - contiene el código básico de cliente/servidor SSH que implementa la conexión, el transporte, los canales, el reenvío, etc.
sshd-sftp - contiene el subsistema SFTP del lado del servidor y el código del cliente SFTP.
sshd-scp - contiene el manejador de comandos SCP del lado del servidor y el código del cliente SCP.
sshd-ldap - contiene autenticadores de contraseña y clave pública del lado del servidor que utilizan un servidor LDAP.
sshd-git - contiene reemplazos para la fábrica de sesiones SSH de JGit.
sshd-osgi - contiene un artefacto que combina sshd-common y sshd-core para poder implementarse en entornos OSGi.
sshd-putty - contiene código que puede analizar archivos de clave de PUTTY.
sshd-openpgp - contiene código que puede analizar archivos de clave de OpenPGP (con algunas limitaciones - ver la sección correspondiente)
sshd-cli - contiene plantillas simples para cliente/servidor de línea de comandos - se utiliza para proporcionar una apariencia similar a los comandos Linux ssh/sshd.
sshd-contrib - código experimental que actualmente está en revisión y puede terminar en uno de los otros artefactos (o convertirse en un artefacto completamente nuevo - por ejemplo, sshd-putty evolucionó de esta manera).
Incluyendo pruebas
mvn clean install
Sin pruebas
mvn -Pquick clean install
check-file-namecopy-file, copy-data - DRAFT 00 - sections 6, 7space-available - DRAFT 09 - section 9.2filename-charset, filename-translation-control - DRAFT 13 - section 6 - solo lado del cliente