web-dev-qa-db-fra.com

Comment puis-je trouver la version actuelle du protocole ssh de la connexion actuelle?

Je me connecte à une machine Linux (centos 6.4) en utilisant PuTTY. Hormis le fait que je peux configurer PuTTY pour n'utiliser qu'un seul type de protocole, comment puis-je trouver la version de connexion ssh actuelle (SSH1 ou SSH2)?

36
codiac

Une fois que vous êtes dedans, vous dites:

ssh -v localhost

il vous indiquera la version exacte du serveur.

48
cstamas

Je sais que c'est une vieille question, mais depuis que je l'ai rencontrée, je n'ai pas pu résister à poster une alternative.

Comme cstamas l'a suggéré, vous pouvez utiliser ssh -v localhost il vous suffit de vous rendre à votre auto 127.0.0.1 en mode verbeux, qui affichera un message de débogage de la progression. Oui, grâce à ce processus, vous pouvez regarder en haut de la communication et obtenir la version SSH que vous utilisez actuellement.

Mais si vous lisez le ssh man page vous trouverez le -V option sur ssh plus utile. Supprimé la page de manuel de ssh :

-V Affiche le numéro de version et quitte.

-v Mode détaillé. Force ssh à imprimer des messages de débogage sur sa progression. Cela est utile pour déboguer les problèmes de connexion, d'authentification et de configuration. Plusieurs options -v augmentent la verbosité. Le maximum est 3.

Je pense donc qu'il vaudrait mieux faire simplement ssh -V et obtenez quelque chose de similaire à:

> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

J'espère que cela t'aides.

20
Thanos

PuTTY Dans Session, Logging, sélectionnez le bouton radio "SSH packets and raw data". Sélectionnez le fichier journal en tant que PuTTY.log à l'emplacement de votre choix. Faites la connexion. Tu devrais voir:

Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2

Voir ci-dessous pour plus de détails sur ce que signifie SSH-2.0.

Autres méthodes Vous pouvez également essayer d'utiliser le client telnet mais pointez sur le port 22:

telnet test1 22

Lorsque vous vous connectez, vous verrez:

Trying 192.168.144.145 ... Connecté à test1. Le caractère d'échappement est '^]'. SSH-2.0-OpenSSH_5.3

La dernière ligne est celle à rechercher:

SSH-2.0-OpenSSH_5.3

S'il dit SSH-2.0 alors c'est bien, le serveur ssh auquel vous vous êtes connecté ne prend en charge que le protocole SSH version 2. Il ne prend pas en charge les connexions des clients du protocole SSH V1.

Si toutefois vous voyez:

SSH-1.99-OpenSSH_5.3

Cela signifie alors que l'extrémité du serveur prend toujours en charge le protocole SSL version 1. Il a quelque chose comme ça dans son sshd_config fichier:

Protocol 1,2

Le protocole 1 est vulnérable et ne doit pas être utilisé.

Donc, pour être clair. Si vous voyez SSH-2 lorsque vous vous connectez au port 22 du serveur distant, vous ne pouvez utiliser que le protocole ssh version 2 car le serveur ne prend pas en charge le protocole 1.

Selon la réponse cstamas ci-dessus, l'indicateur -v affichera une ligne:

debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3

ou:

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3

Tu veux voir version 2.0 Là.

11
davey

Vous pouvez obtenir cela assez rapidement en utilisant netcat depuis votre machine locale, par exemple:

$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
5
Awesominator

Je préfère ça:

$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$

L'avantage ici est que cela peut être fait par programme car la connexion n'est pas maintenue ouverte. Pour Python, essayez:

ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
3
Joshua Detwiler

La seule méthode que je connaisse nécessite que l'on dispose de privilèges suffisants pour afficher les entrées du journal ssh dans /var/log/auth.log.

$ echo $SSH_CONNECTION 
127.0.0.1 12375 127.0.0.1 22

Les premier et deuxième champs du SSH_CONNECTION variable indique l'IP source et le port source de ma connexion. Par grep- pour ces valeurs dans /var/log/auth.log, Je peux trouver l'entrée de journal à partir de laquelle ma connexion ssh a été authentifiée.

$ 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

Cette entrée de journal m'indique que ma connexion actuelle utilise le protocole ssh2. Bien sûr, si la session ssh est ouverte depuis plusieurs jours, l'entrée de journal peut être dans /var/log/auth.log.0 ou des anciens auth.log fichier.

0
Jim L.