¿Cómo saber cuándo se produjo una nueva clave OpenSSH y cómo activar una?

3

Tengo una pregunta doble sobre el cambio de clave de OpenSSH. Utilizo OpenSSH 6.4 en el lado del servidor y la conexión entre el cliente y el servidor es una conexión SSH2.

Las preguntas:

  • ¿Cómo puedo saber cuándo ha pasado una nueva clave? ¿Debo revisar cualquier registro, o cualquier salida específica? Ejecutar sshd en debug more (-d) no me muestra nada relacionado con el cambio de clave.
  • ¿Cómo puedo activar una nueva clave?
pregunta Pandrei 26.04.2016 - 15:40
fuente

2 respuestas

3
  

¿Cómo puedo saber cuándo ha ocurrido una nueva clave? ¿Debo revisar cualquier registro, o cualquier salida específica? Ejecutar sshd en debug more (-d) no me muestra nada relacionado con el cambio de clave.

Se imprime solo en el modo de depuración, porque no debería ser una idea que debería preocuparte. Debe funcionar fuera de la caja como es. Pero de todos modos, puede aumentar el nivel de registro de su cliente usando:

  • -vvv cambia a tu comando ssh ( DEBUG3 )
  • Opción LogLevel DEBUG3 config en su ~/.ssh/config
  • ~v secuencia de escape durante su sesión
  

¿Cómo puedo activar una nueva clave?

Rekey se maneja con la opción de configuración RekeyLimit en la configuración del cliente y del servidor (aunque un poco roto hasta openssh-7.2). Si configura un valor bajo, debería cambiar la clave con más frecuencia, pero no tiene sentido hacerlo.

Por sesión en mano, puede activar uno, mediante la secuencia de escape ~R . Después de eso (en al menos DEBUG log level o -v , verá muchos mensajes de depuración:

[root@f24 ~]# ~?
Supported escape sequences:
 ~.   - terminate connection (and any multiplexed sessions)
 ~B   - send a BREAK to the remote system
 ~C   - open a command line
 ~R   - request rekey
 ~V/v - decrease/increase verbosity (LogLevel)
 ~^Z  - suspend ssh
 ~#   - list forwarded connections
 ~&   - background ssh (when waiting for connections to terminate)
 ~?   - this message
 ~~   - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

[root@f24 ~]# ~v [LogLevel VERBOSE]
~v [LogLevel DEBUG]
[root@f24 ~]# ~R
debug1: SSH2_MSG_KEXINIT sent
debug1: rekeying in progress
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: [email protected] need=64 dh_need=64
debug1: kex: [email protected] need=64 dh_need=64
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: rekeying in progress
debug1: rekeying in progress
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:E9HuzpVQJ/5DavNIZhWzJrADNj5Ntw69RJ1obXJtlGo
debug1: set_newkeys: rekeying, input 5156 bytes 167 blocks, output 5864 bytes 0 blocks
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: set_newkeys: rekeying, input 5168 bytes 0 blocks, output 5864 bytes 0 blocks
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
    
respondido por el Jakuje 26.04.2016 - 19:16
fuente
3

De acuerdo con esta pregunta de intercambio de pila ¿La propiedad RekeyLimit en sshd_config obliga a re-keying / key re-exchange? es necesario hacer que la depuración sea más habladora (-ddd). El modo de depuración (incluso con una sola -d ) es suficiente. Todo lo que necesita hacer es activar el proceso de cambio de clave.
Cuando use OpenSSH como cliente, simplemente ingrese ~ R (mayúscula R!) Y tendrá lugar el cambio de clave. En el lado del servidor verá

debug1: SSH2_MSG_KEXINIT received
debug1: SSH2_MSG_KEXINIT sent
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: expecting SSH2_MSG_KEX_ECDH_INIT
debug1: set_newkeys: rekeying
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: set_newkeys: rekeying
debug1: SSH2_MSG_NEWKEYS received

Al usar PuTTY como cliente, puede forzar el cambio de clave mediante 'Comando Especial' - > "Repetir intercambio de claves" que dará como resultado un registro de servidor similar:

debug1: SSH2_MSG_KEXINIT received
debug1: SSH2_MSG_KEXINIT sent
debug1: kex: client->server aes256-ctr hmac-sha2-256 none
debug1: kex: server->client aes256-ctr hmac-sha2-256 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: set_newkeys: rekeying
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: set_newkeys: rekeying
debug1: SSH2_MSG_NEWKEYS received
    
respondido por el Alexander Stumpf 26.04.2016 - 17:17
fuente

Lea otras preguntas en las etiquetas