Заметка: из раздела по подписке

Сегодня на работе я хотел написать скрипт или действия, через которые я смогу оперативно снимать резервную копию настроенного конфигурационного файла на коммутаторе Cisco WS-C2960S-24TS-L, то в процессе подключения с Ubuntu 20.04 Server через встроенный клиент ssh получил отворот поворот, странно то что с Windows 10 Pro (Version 10.0.18363.592) через клиента Putty (Version 0.73) успешно подключаюсь.

Текущая версия установленного клиента SSH на Ubuntu 20.04 Server:

ekzorchik@srv-backup:~$ ssh -V

OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f  31 Mar 2020

Текущая версия моего коммутатора Cisco WS-C2960S-24TS-L :

Switch Ports Model                     SW Version            SW Image

------ ----- -----                     ----------            ----------

*    1 28    WS-C2960S-24TS-L          15.2(2)E9             C2960S-UNIVERSALK9-M

При подключении к WS-C2960S-24TS-L  по SSH с Ubuntu 20.04 Server

ekzorchik@srv-backup:~$ ssh -l ollo sw002.polygon.local

Unable to negotiate with 192.168.3.74 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

ekzorchik@srv-backup:~$

Вот те на.

Шаг №1: Победил я данную ошибку (no matching key exchange method found) путем явного указания используемого алгоритма Diffie Hellman при подключении по SSH:

ekzorchik@srv-backup:~$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -l ollo sw002.polygon.local -p 22

The authenticity of host 'sw002.polygon.local (192.168.3.74)' can't be established.

RSA key fingerprint is SHA256:wy/p8h42hJts4MUe/Xa9cTX+dqx2pkoPrXLW4qJXJko.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added 'sw002.polygon.local,192.168.3.74' (RSA) to the list of known hosts.

Password: указываю пароль на подключение к своей Cisco

sw002>

Шаг №2: Проверяем какие алгоритмы взаимодействия с удаленными хостами поддерживает встроенный SSH клиент:

ekzorchik@srv-backup:~$ ssh -Q cipher

3des-cbc

aes128-cbc

aes192-cbc

aes256-cbc

rijndael-cbc@lysator.liu.se

aes128-ctr

aes192-ctr

aes256-ctr

aes128-gcm@openssh.com

aes256-gcm@openssh.com

chacha20-poly1305@openssh.com

ekzorchik@srv-backup:~$

в выводе имеется алгоритм aes256-cbc

и если у Вас при Шаге №1 все же будет ошибка: "Unable to negotiate with host port 22: no matching cipher found", то строка подключения будет такой:

ekzorchik@srv-backup:~$ ssh -c aes256-cbc -oKexAlgorithms=+diffie-hellman-group1-sha1 -l ollo sw002.polygon.local -p 22

Password:

sw002>

На заметку: и с учетом этого в Шаг №3 нужно будет указать алгоритм, который использовать при подключении.

Шаг №3: Если планируется часто подключаться к оборудованию Cisco, то есть смысл не каждый раз указывать такую длинную строку на подключение, а задействовать единожды настроенное описание в конфигурационном файле /etc/ssh/ssh_config:

ekzorchik@srv-backup:~$ sudo nano /etc/ssh/ssh_config
Host sw002.amilux.local
        Port 22
        PasswordAuthentication yes
        Ciphers aes256-cbc
        KexAlgorithms +diffie-hellman-group1-sha1

ekzorchik@srv-backup:~$ ssh -l ollo sw002.amilux.local
Password:
sw002>

Итого, я составил себе пошаговую заметку как подключаться к оборудованию WS-C2960S-24TS-L с Ubuntu 20.04 Server и могу смело приступить к намеченному составлению скрипта по резервному копированию. На этом заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.