¿Cómo soluciono un problema de discrepancia de cifrado con SFTP?

¿Cómo soluciono un problema de discrepancia de cifrado con SFTP?

Me encuentro con un problema en el que se actualizó un servidor a RHEL 6.5 y tenemos scripts bash automatizados en una instalación de RHEL 5.9 que se conecta a través de comandos sftp y ssh.

Ahora, el nuevo servidor sólo admite los cifrados aes128-ctr, aes192-ctr y aes256-ctr.

Pude actualizar los comandos ssh para usar la opción -c con aes256-ctr y esto funcionó:

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

Sin embargo, cuando intenté hacer el equivalente para sftp:

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

Recibo un error que indica que el cliente no admite los mismos cifrados que el servidor:

no se encontró ningún cifrado coincidente: cliente arcfour256,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc servidor aes128-ctr,aes192-ctr,aes256-ctr

Estos comandos ssh y sftp se ejecutan en el mismo cuadro RHEL 5.9, así que me pregunto por qué esto funciona para ssh y no para sftp.

Además, ¿cómo soluciono este problema para poder conectarme usando sftp sin ningún cambio en el lado del cliente?

Respuesta1

La Cipherdirectiva es para SSH versión 1 (que no se utiliza hoy en día).

Para SSH versión 2, utilice Ciphers:

sftp -oCiphers=aes256-ctr

Ver elssh_configpágina de manual.


Aunque tenga en cuenta que también sftpadmite el -cinterruptor. Por lo tanto, no es necesario utilizar el archivo -o.

Ver elsftppágina de manual:

-c cipher

Selecciona el cifrado que se utilizará para cifrar las transferencias de datos.
Esta opción se pasa directamente assh(1).

La opción es compatible desdeAbiertoSSH 5.4. El cambio se disfraza de"Soporta la mayoría de los argumentos de la línea de comandos de scp(1) en sftp(1)".


Tenga en cuenta que el argumento de la línea de comandos -ces principalmente un equivalente a la Ciphersdirectiva (aunque puede recurrir a Cipher). Cita de lasshpágina de manual:

-c cipher_spec

Selecciona la especificación de cifrado para cifrar la sesión.
La versión 1 del protocolo permite la especificación de un único cifrado. Los valores admitidos son “3des”, “blowfish” y “des”. Para la versión 2 del protocolo, cipher_spechay una lista de cifrados separados por comas y ordenados por preferencia. Ver la Cipherspalabra clave enssh_config(5)para más información.

información relacionada