Como faço para corrigir um problema de incompatibilidade de criptografia com SFTP?

Como faço para corrigir um problema de incompatibilidade de criptografia com SFTP?

Estou enfrentando um problema em que um servidor foi atualizado para RHEL 6.5 e temos scripts bash automatizados em uma instalação do RHEL 5.9 que se conecta por meio de comandos sftp e ssh.

Agora, o novo servidor suporta apenas as cifras aes128-ctr, aes192-ctr e aes256-ctr.

Consegui atualizar os comandos ssh para usar a opção -c com aes256-ctr e funcionou:

ssh -c aes256-ctr ${remote_host} ${my_command}

No entanto, quando tentei fazer o equivalente para sftp:

sftp -oCipher=aes256-ctr ${remote_host} <<< $'get /home/me/* me/'

Estou recebendo um erro informando que o cliente não suporta as mesmas cifras que o servidor:

nenhuma cifra correspondente encontrada: cliente arcfour256,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc servidor aes128-ctr,aes192-ctr,aes256-ctr

Esses comandos ssh e sftp são executados na mesma caixa RHEL 5.9, então estou me perguntando por que isso funciona para ssh e não para sftp.

Além disso, como corrigir isso para que eu possa me conectar usando sftp sem nenhuma alteração no cliente?

Responder1

A Cipherdiretiva é para SSH versão 1 (que não está em uso atualmente).

Para SSH versão 2, use Ciphers:

sftp -oCiphers=aes256-ctr

Veja ossh_configpágina de manual.


Embora observe que o switch também sftpsuporta o -cswitch. Portanto, não há necessidade de usar o -o.

Veja osftppágina de manual:

-c cipher

Seleciona a cifra a ser usada para criptografar as transferências de dados.
Esta opção é passada diretamente parassh(1).

A opção é suportada desdeOpenSSH 5.4. A mudança está disfarçada de"Suporta a maioria dos argumentos de linha de comando do scp(1) em sftp(1)".


Observe que o argumento da linha de comando -cé principalmente equivalente à Ciphersdiretiva (embora possa recorrer ao Cipher). Citação dosshpágina de manual:

-c cipher_spec

Seleciona a especificação de cifra para criptografar a sessão.
A versão 1 do protocolo permite a especificação de uma única cifra. Os valores suportados são “3des”, “blowfish” e “des”. Para a versão 2 do protocolo, cipher_spechá uma lista separada por vírgulas de cifras listadas em ordem de preferência. Veja a Cipherspalavra-chave emssh_config(5)Para maiores informações.

informação relacionada