Me conecto a una máquina Linux (Centos 6.4) usando masilla. Excepto por el hecho de que puedo configurar la masilla para usar solo un tipo de protocolo, ¿cómo puedo encontrar la versión de conexión ssh actual (SSH1 o SSH2)?
Me conecto a una máquina Linux (Centos 6.4) usando masilla. Excepto por el hecho de que puedo configurar la masilla para usar solo un tipo de protocolo, ¿cómo puedo encontrar la versión de conexión ssh actual (SSH1 o SSH2)?
Respuestas:
Sé que esta es una vieja pregunta, pero desde que la encontré, no pude resistirme a publicar una forma alternativa.
Como sugirió cstamas , puede usar ssh -v localhost
simplemente ssh to your self 127.0.0.1 en modo detallado, que mostrará un mensaje de depuración del progreso. Sí, a través de este proceso puede ver la parte superior de la comunicación y puede obtener la versión SSH que está ejecutando actualmente.
Pero si lees la ssh man
página, encontrarás la -V
opción en ssh más útil. Tomado la página de manual de ssh :
-V Muestra el número de versión y sale.
-v Modo detallado. Hace que ssh imprima mensajes de depuración sobre su progreso. Esto es útil para depurar problemas de conexión, autenticación y configuración. Múltiples opciones -v aumentan la verbosidad. El máximo es 3.
Así que creo que sería mejor simplemente hacer ssh -V
y obtener algo similar a:
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
Espero que esto ayude.
Masilla En sesión, Registro, seleccione el botón de opción "Paquetes SSH y datos sin procesar". Seleccione el archivo de registro como putty.log en la ubicación que elija. Haz la conexión. Deberías ver:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
Vea a continuación los detalles sobre lo que significa SSH-2.0.
Otros métodos También podría intentar usar el cliente telnet pero señalar el puerto 22:
telnet test1 22
Cuando te conectes verás:
Intentando 192.168.144.145 ... Conectado a prueba1. El carácter de escape es '^]'. SSH-2.0-OpenSSH_5.3
La última línea es la que debe buscar:
SSH-2.0-OpenSSH_5.3
Si dice SSH-2.0
que eso es bueno, el servidor ssh al que se conectó solo admite la versión 2 del protocolo SSH. No admitirá conexiones de clientes del protocolo SSH V1.
Sin embargo, si ves:
SSH-1.99-OpenSSH_5.3
Entonces eso significa que el servidor aún es compatible con el Protocolo SSL Versión 1. Tiene algo como esto en su sshd_config
archivo:
Protocol 1,2
El Protocolo 1 es vulnerable y no debe usarse.
Así que para aclarar eso. Si ve SSH-2 cuando hace telnet al puerto 22 del servidor remoto, solo puede usar la versión 2 del protocolo ssh, ya que el servidor no es compatible con el protocolo 1.
Según la respuesta anterior de cstamas, el indicador -v mostrará una línea:
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
o:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
Quieres ver version 2.0
alli
Puede obtener esto bastante rápido usando netcat desde su máquina local, por ejemplo:
$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
Me gusta más esto:
$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$
El beneficio aquí es que se puede hacer mediante programación ya que la conexión no se mantiene abierta. Para Python, intente:
ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
El único método que conozco requiere que uno tenga privilegios suficientes para ver las entradas de registro ssh /var/log/auth.log
.
$ echo $SSH_CONNECTION
127.0.0.1 12375 127.0.0.1 22
Los campos primero y segundo de la SSH_CONNECTION
variable indican la IP de origen y el puerto de origen de mi conexión. Al grep
buscar esos valores en /var/log/auth.log
, puedo encontrar la entrada de registro de cuando se autenticó mi conexión ssh.
$ sudo grep -F ' from 127.0.0.1 port 12375 ' /var/log/auth.log | grep ssh
Jun 26 16:29:52 morton sshd[20895]: Accepted keyboard-interactive/pam for jim from 127.0.0.1 port 12375 ssh2
Esta entrada de registro me dice que mi conexión actual está usando el protocolo ssh2. Por supuesto, si la sesión ssh ha estado abierta durante varios días, la entrada del registro puede estar en/var/log/auth.log.0
algún auth.log
archivo anterior .