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

1

Estou com um problema em que um servidor foi atualizado para o 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 isso funcionou:

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

No entanto, quando tentei fazer o equivalente para o sftp:

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

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

no matching cipher found: client arcfour256,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc server 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 o sftp sem nenhuma alteração no lado do cliente?

    
por Hazok 21.05.2015 / 08:37

2 respostas

1

sftp -o aceita ssh_option ( fonte ).

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

    
por 21.05.2015 / 19:19
0

A diretiva Cipher é para a versão 1 do SSH (que não está em uso atualmente).

Para a versão 2 do SSH, use o Ciphers :

sftp -oCiphers=aes256-ctr

Veja ssh_config man page .

No entanto, observe que o sftp também suporta a opção -c . Portanto, não há necessidade de usar o -o .

Veja a sftp man page :

-c cipher

Selects the cipher to use for encrypting the data transfers.
This option is directly passed to ssh(1).

A opção é suportada desde OpenSSH 5.4 . A mudança é disfarçada como "Suporte a maioria dos argumentos de linha de comando de scp (1) em sftp (1) ".

Observe que o argumento de linha de comando -c é basicamente equivalente à diretiva Ciphers (embora possa retornar ao Cipher ). Citação da página ssh man :

-c cipher_spec

Selects the cipher specification for encrypting the session.
Protocol version 1 allows specification of a single cipher. The supported values are “3des”, “blowfish”, and “des”. For protocol version 2, cipher_spec is a comma-separated list of ciphers listed in order of preference. See the Ciphers keyword in ssh_config(5) for more information.

    
por 22.05.2015 / 08:23

Tags