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.
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?
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 theCiphers
keyword in ssh_config(5) for more information.