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)?
Une fois que vous êtes dedans, vous dites:
ssh -v localhost
il vous indiquera la version exacte du serveur.
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.
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à.
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
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))
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.