Как подключиться к коммутатору Cisco через S SH с Python Paramiko - PullRequest
0 голосов
/ 04 апреля 2020

Я хочу написать Python сценарий для создания соединения для коммутации Cisco. Я использовал модуль Paramiko Python, но он возвращает ошибку соединения.

Код:

import paramiko
client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='192.168.1.2', username='cisco',password='cisco')

Возвращает эти ошибки:

Traceback (most recent call last):
  File "/home/nicola/.PyCharmCE2019.3/config/scratches/cisco.py", line 11, in <module>
    client.connect(hostname='192.168.1.2', username='cisco',password='cisco')
  File "/home/nicola/PycharmProjects/cisco/venv/lib/python3.7/site-packages/paramiko/client.py", line 446, in connect
    passphrase,
  File "/home/nicola/PycharmProjects/cisco/venv/lib/python3.7/site-packages/paramiko/client.py", line 764, in _auth
    raise saved_exception
  File "/home/nicola/PycharmProjects/cisco/venv/lib/python3.7/site-packages/paramiko/client.py", line 751, in _auth
    self._transport.auth_password(username, password)
  File "/home/nicola/PycharmProjects/cisco/venv/lib/python3.7/site-packages/paramiko/transport.py", line 1509, in auth_password
    return self.auth_handler.wait_for_response(my_event)
  File "/home/nicola/PycharmProjects/cisco/venv/lib/python3.7/site-packages/paramiko/auth_handler.py", line 250, in wait_for_response
    raise e
paramiko.ssh_exception.BadAuthenticationType: Bad authentication type; allowed types: ['publickey']

Ответы [ 3 ]

0 голосов
/ 04 апреля 2020

Я использовал файл linux /home/$USER/.ssh/known_host.

это ошибки

raise SSHException("not a valid {} private key file".format(tag))
paramiko.ssh_exception.SSHException: not a valid OPENSSH private key       
file
0 голосов
/ 06 апреля 2020

Я исправил ошибку ключа RSA. Теперь python принимаем ключ RSA с помощью этой команды

key=paramiko.RSAKey.from_private_key_file(filename='/home/nicola`/.ssh/sg500.pem')`

Но сначала мне нужно было создать файл ключа RSA vaild pem

ssh-keygen -f known_hosts -m pem

В файле known_hosts был сохранен только ключ RSA из устройство

Теперь у меня есть другая ошибка, когда я запускаю команду

client.connect(hostname='192.168.1.2',port=22,username='cisco',password='cisco',pkey=key)

ошибки

  Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/home/nicola/PycharmProjects/cisco/venv/lib/python3.7/site-packages/paramiko/client.py", line 416, in connect
    self, server_hostkey_name, server_key
  File "/home/nicola/PycharmProjects/cisco/venv/lib/python3.7/site-packages/paramiko/client.py", line 824, in missing_host_key
    "Server {!r} not found in known_hosts".format(hostname)
paramiko.ssh_exception.SSHException: Server '192.168.1.2' not found in known_hosts
0 голосов
/ 04 апреля 2020

Попробуйте использовать ключ s sh, созданный на маршрутизаторе после его копирования на компьютер.

import paramiko
client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='192.168.1.2', key_filename=<your path to key>)
...