Использую в работе свой модуль, в котором разные функции для манипулирвания сетевым оборудованием Cisco и Huawei
использую в том числе для бэкапа конфигов
скрипт работает на сервере под управлением CentOS7 python + netmiko
Хуавей свичи были S5731-H24T4XC Version 5.170 V200R019C10SPC500, пришли новые S5731-S48T4X Version 5.170 V200R021C00SPC100, добавил их в список для бэкапа, в логах ошибка:
paramiko.transport ERROR: Exception: Incompatible ssh peer (no acceptable host key)
попробовал в консоле питона прямо ввести
import paramiko
transport = paramiko.Transport("my_some_ip")
transport.connect(username = "some_user", password = "some_password")
выдает ошибку
/home/ some_user /py39-env/lib/python3.9/site-packages/paramiko/transport.py in connect(self, hostkey, username, password, pkey, gss_host, gss_auth, gss_kex, gss_deleg_creds, gss_trust_dns)
1347 )
1348
-> 1349 self.start_client()
1350
1351 # check host key if we were given one
/home/ some_user /py39-env/lib/python3.9/site-packages/paramiko/transport.py in start_client(self, event, timeout)
700 e = self.get_exception()
701 if e is not None:
--> 702 raise e
703 raise SSHException("Negotiation failed.")
704 if event.is_set() or (
/home/ some_user /py39-env/lib/python3.9/site-packages/paramiko/transport.py in run(self)
2084 try:
2085 try:
-> 2086 self.packetizer.write_all(b(self.local_version + "\r\n"))
2087 self._log(
2088 DEBUG,
/home/ some_user /py39-env/lib/python3.9/site-packages/paramiko/packet.py in write_all(self, out)
359 iteration_with_zero_as_return_value += 1
360 if n < 0:
--> 361 raise EOFError()
362 if n == len(out):
363 break
EOFError:
к старому оборудованию, с другим VRP подключаюсь без ошибок, конфигурации ssh server у них одинаковые, с этого же сервера просто по ssh подключаюсь
попробовал скрипт со своей Windows10 машины - все прекрасно работает
И на винде и на Линуксе Python 3.9.7 netmiko 4.1.2 paramiko был и там и там одинаковый 2.12 но я уже на Линуксе обновил до 3,0,0 (но насколько я понимаю netmiko базируется на paramiko, но у него свой код, а он у меня одинаковый)
видимо open-ssh надо копать, но я же с линуксового сервера по ssh могу подключаться, а python по идее использует ту же библиотеку что и клиент ssh
Что это может быть?