![¿Es posible agregar un cifrado para un cliente SFTP?](https://rvso.com/image/1451234/%C2%BFEs%20posible%20agregar%20un%20cifrado%20para%20un%20cliente%20SFTP%3F.png)
Me encuentro con un problema en el que se actualizó un servidor a RHEL 6.5 y tenemos scripts 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
Respuesta2
La Cipher
directiva 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
Verssh_config
página de manual.
Aunque tenga en cuenta que también sftp
admite el -c
interruptor. Por lo tanto, no es necesario utilizar el archivo -o
.
Ver elsftp
pá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 -c
es principalmente un equivalente a la Ciphers
directiva (aunque puede recurrir a Cipher
). Cita de lassh
pá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_spec
hay una lista de cifrados separados por comas y ordenados por preferencia. Ver laCiphers
palabra clave enssh_config(5)para más información.