Tu no generar la clave utilizada por aes
cuando usas ssh-keygen
. Desde aes
es un cifrado simétrico , sus claves no vienen en parejas. Ambos extremos de la comunicación utilizan la misma clave.
La clave generada por ssh-keygen utiliza criptografía de clave pública para la autenticación. Del ssh-keygen
manuales:
ssh-keygen generates, manages and converts authentication keys for
ssh(1). ssh-keygen can create RSA keys for use by SSH protocol version 1
and DSA, ECDSA, Ed25519 or RSA keys for use by SSH protocol version 2.
Del ssh
manuales:
Public key authentication works as follows: The scheme is based on
public-key cryptography, using cryptosystems where encryption and
decryption are done using separate keys, and it is unfeasible to derive
the decryption key from the encryption key. The idea is that each user
creates a public/private key pair for authentication purposes. The
server knows the public key, and only the user knows the private key.
ssh implements public key authentication protocol automatically, using
one of the DSA, ECDSA, Ed25519 or RSA algorithms.
El problema con la criptografía de clave pública es que es bastante lenta. La criptografía de clave simétrica es mucho más rápida y la utiliza ssh
para la transferencia de datos real. La clave utilizada para la criptografía simétrica se genera sobre la marcha después de establecer la conexión (citando del sshd
manuales):
For protocol 2, forward security is provided through a Diffie-Hellman key
agreement. This key agreement results in a shared session key. The rest
of the session is encrypted using a symmetric cipher, currently 128-bit
AES, Blowfish, 3DES, CAST128, Arcfour, 192-bit AES, or 256-bit AES. The
client selects the encryption algorithm to use from those offered by the
server. Additionally, session integrity is provided through a
cryptographic message authentication code (hmac-md5, hmac-sha1, umac-64,
umac-128, hmac-ripemd160, hmac-sha2-256 or hmac-sha2-512).
Si desea utilizar aes256-cbc
necesita especificarlo en la línea de comando usando la opción -c, en su forma más básica se vería así:
$ ssh -c aes256-cbc [email protected]
También puede especificar su selección preferida de cifrados en ssh_config
, utilizando una lista separada por comas. Sin embargo, no se recomienda jugar con los valores predeterminados, ya que es mejor dejarlo en manos de los expertos. Hay muchas consideraciones y años de experiencia en la elección de los valores predeterminados por parte de los desarrolladores de OpenSSH.