É possível adicionar uma cifra para um cliente SFTP?

É possível adicionar uma cifra para um cliente SFTP?

Estou enfrentando um problema em que um servidor foi atualizado para RHEL 6.5 e temos scripts 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

sftp -oaceita ssh_option(fonte).

ssh_config dizisso Cipheré para o protocolo ssh v1 (que você nunca deve usar) e Ciphersé para o protocolo ssh v2.

Responder2

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

Verssh_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