Я підключаюсь до машини Linux (centos 6.4), яка використовує шпаклівку. За винятком того, що я можу встановити шпаклівку на використання лише одного типу протоколів, як я можу знайти поточну версію ssh-з'єднання (SSH1 або SSH2)?
Я підключаюсь до машини Linux (centos 6.4), яка використовує шпаклівку. За винятком того, що я можу встановити шпаклівку на використання лише одного типу протоколів, як я можу знайти поточну версію ssh-з'єднання (SSH1 або SSH2)?
Відповіді:
Я знаю, що це давнє питання, але оскільки я натрапив на нього, я не втримався від розміщення альтернативного способу.
Як запропонував cstamas, ви можете використовувати ssh -v localhost
просто ssh до себе 127.0.0.1 у режимі докладної роботи, який відображатиме повідомлення про налагодження прогресу. Так, за допомогою цього процесу ви можете переглянути верхній зв'язок, і ви зможете отримати версію SSH, яку ви зараз працюєте.
Але якщо ви прочитаєте ssh man
сторінку, знайдете -V
варіант на ssh більш корисним. Витягнута сторінка ssh man :
-V Показує номер версії та вихід.
-v Докладний режим. Викликає ssh друкувати налагоджувальні повідомлення про його хід. Це корисно для налагодження проблем з підключенням, автентифікацією та конфігурацією. Параметри множини -v збільшують багатослівність. Максимум - 3.
Тому я думаю, що було б краще просто зробити ssh -V
і отримати щось подібне до:
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
Сподіваюся, це допомагає.
Putty In Session, Logging, виберіть перемикач "SSH пакети та необроблені дані". Виберіть файл журналу як putty.log у вибраному вами місці. Зробіть з'єднання. Ви повинні побачити:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
Нижче див. Детальну інформацію про те, що означає SSH-2.0.
Інші методи Ви також можете спробувати скористатися клієнтом telnet, але вкажіть на порт 22:
telnet test1 22
При підключенні ви побачите:
Спробує 192.168.144.145 ... Підключено до тесту1. Символ втечі - '^]'. SSH-2.0-OpenSSH_5.3
Останній рядок, який потрібно шукати:
SSH-2.0-OpenSSH_5.3
Якщо тоді сказано, SSH-2.0
що це добре, ssh-сервер, до якого ви підключилися, підтримує лише протокол SSH версії 2. Він не підтримуватиме з'єднання від клієнтів протоколу SSH V1.
Якщо ви бачите:
SSH-1,99-OpenSSH_5.3
Тоді це означає, що серверний кінець все ще підтримує протокол SSL версії 1. У sshd_config
файлі є щось подібне :
Protocol 1,2
Протокол 1 є вразливим і не повинен використовуватися.
Тож щоб зрозуміти це прямо. Якщо ви бачите SSH-2 під час телнету до порту 22 віддаленого сервера, ви можете використовувати лише ssh Protocol Version 2, оскільки сервер не підтримує протокол 1.
Відповідно до відповіді cstamas вище, прапор -v буде показувати рядок:
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
або:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
Ви хочете version 2.0
там побачити .
Ви можете отримати це досить швидко, використовуючи netcat з вашої локальної машини, наприклад:
$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
Мені це подобається краще:
$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$
Перевага тут полягає в тому, що це можна зробити програмно, оскільки з'єднання не є відкритим. Для Python спробуйте:
ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
Єдиний мені відомий метод вимагає, щоб у нього було достатньо привілеїв для перегляду записів журналу ssh /var/log/auth.log
.
$ echo $SSH_CONNECTION
127.0.0.1 12375 127.0.0.1 22
Перше та друге поля SSH_CONNECTION
змінної вказують на джерело IP та порт джерела мого з'єднання. З допомогою grep
-ing для цих значень у /var/log/auth.log
, я можу знайти запис журналу, коли моє 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
Цей запис у журналі повідомляє мені, що моє поточне з'єднання використовує протокол ssh2. Звичайно, якщо сеанс ssh був відкритий протягом декількох днів, запис у журнал може бути у файлі /var/log/auth.log.0
чи іншому старішому auth.log
файлі.