
Biblioteca SSH cliente/servidor em Java puro que implementa o protocolo SSH-2 com suporte para múltiplas cifras, trocas de chaves, métodos de autenticação, SFTP, SCP e encaminhamento de portas para acesso remoto seguro.

Apache MINA SSHD é uma biblioteca 100% Java pura para suportar os protocolos SSH tanto no lado do cliente quanto no servidor. Não tem como objetivo ser um substituto para o cliente SSH ou servidor SSH de sistemas operacionais Unix, mas sim fornecer suporte para aplicações baseadas em Java que necessitam de suporte SSH.
A biblioteca pode aproveitar vários back-ends de E/S:
AsynchronousSocketChannels do Java.server-sig-algs.supported - DRAFT 05 - seção 4.4supported2 - DRAFT 13 seção 5.4versions - DRAFT 09 Seção 4.6vendor-id - DRAFT 09 - seção 4.4acl-supported - DRAFT 11 - seção 5.4newline - DRAFT 09 Seção 4.3md5-hash, md5-hash-handle - DRAFT 09 - seção 9.1.1check-file-handle, - eddsa), [email protected], [email protected]
, [email protected], [email protected], [email protected]
, [email protected], [email protected], [email protected]Nota: A lista acima contém todas as configurações de segurança suportadas no código. No entanto, de acordo com as recomendações mais recentes, a configuração padrão do cliente/servidor inclui apenas as configurações de segurança que atualmente são consideradas seguras de usar. Usuários que desejam incluir as configurações inseguras devem fazê-lo explicitamente. As seguintes configurações foram descontinuadas e não estão mais incluídas na configuração padrão:
Advertência: De acordo com RFC 8332 - seção 3.31
A experiência de implementação mostrou que existem servidores que aplicam penalidades de autenticação a clientes que tentam algoritmos de chave pública que o servidor SSH não suporta.
Ao autenticar com uma chave RSA contra um servidor que não implementa a extensão "server-sig-algs", os clientes PODEM usar por padrão uma assinatura "ssh-rsa" para evitar penalidades de autenticação. Quando os novos algoritmos rsa-sha2-* tiverem sido suficientemente adotados para justificar a desativação de "ssh-rsa", os clientes PODEM usar por padrão um dos novos algoritmos.
Isso significa que os usuários que encontrarem este (e problemas relacionados) devem modificar as configurações de segurança suportadas explicitamente para evitar o problema.
Aviso especial: ssh-rsa foi mantido como parte da configuração padrão, pois ainda existem muitos sistemas/usuários
o utilizando. No entanto, em versões futuras, será removido do padrão. Portanto, incentivamos fortemente os usuários a migrar
para outras chaves (ex.: ECDSA, ED25519) o mais rápido possível.
Relatórios de bugs e solicitações de melhoria ou funcionalidade podem ser enviados no rastreador de issues do GitHub ou no rastreador de issues do Apache.
Questões sensíveis, como vulnerabilidades de segurança, devem ser relatadas por meio de canais privados, não através de nenhum dos rastreadores de issues.
Java 8+ (a partir da versão 1.3)
O código requer apenas o módulo abstrato principal slf4j-api. A implementação real da API de logging pode ser selecionada entre vários adaptadores existentes.
sshd-common - contém classes básicas usadas em todo o projeto, bem como código que não requer suporte de rede cliente ou servidor.
sshd-core - contém o código básico do cliente/servidor SSH que implementa a conexão, transporte, canais, encaminhamento, etc.
sshd-sftp - contém o subsistema SFTP do lado do servidor e o código do cliente SFTP.
sshd-scp - contém o manipulador de comando SCP do lado do servidor e o código do cliente SCP.
sshd-ldap - contém autenticadores de senha e chave pública do lado do servidor que utilizam um servidor LDAP.
sshd-git - contém substituições para a fábrica de sessão SSH do JGit.
sshd-osgi - contém um artefato que combina sshd-common e sshd-core para que possa ser implantado em ambientes OSGi.
sshd-putty - contém código que pode analisar arquivos de chave PUTTY.
sshd-openpgp - contém código que pode analisar arquivos de chave OpenPGP (com algumas limitações - veja seção relevante)
sshd-cli - contém modelos simples para cliente/servidor de linha de comando - usado para fornecer aparência semelhante aos comandos Linux ssh/sshd.
sshd-contrib - código experimental que está atualmente em revisão e pode vir a fazer parte de um dos outros artefatos (ou se tornar um artefato totalmente novo - ex.: sshd-putty evoluiu dessa forma).
Incluindo testes
mvn clean install
Sem testes
mvn -Pquick clean install
check-file-namecopy-file, copy-data - DRAFT 00 - seções 6, 7space-available - DRAFT 09 - seção 9.2filename-charset, filename-translation-control - DRAFT 13 - seção 6 - apenas lado do cliente