ssh-соединение в python

#python #paramiko

#python #paramiko

Вопрос:

Я пытаюсь прочитать текстовый файл с сервера, используя ssh из python 3.5. Я использую paramiko для подключения к серверу, но, к сожалению, у меня возникают проблемы с фактическим подключением к серверу.

это код, который я использую для подключения к серверу

 import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('IP ADDRESS OF THE SERVER', key_filename="/home/user/.ssh/id_ecdsa" ,look_for_keys=True)
  

но каждый раз, когда я пытаюсь подключиться к серверу, я получаю сообщение об ошибке с ошибкой аутентификации, может кто-нибудь увидеть, что я здесь делаю не так?
Любые советы будут оценены

Это ошибка, которую я получаю при каждом подключении.

 Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/site-packages/paramiko/client.py", line 380,    in connect
look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host)
File "/usr/local/lib/python3.5/site-packages/paramiko/client.py", line 603, in _auth
raise saved_exception
File "/usr/local/lib/python3.5/site-packages/paramiko/client.py", line 580, in _auth
allowed_types = set(self._transport.auth_publickey(username, key))
File "/usr/local/lib/python3.5/site-packages/paramiko/transport.py", line 1331, in auth_publickey
return self.auth_handler.wait_for_response(my_event)
File "/usr/local/lib/python3.5/site-packages/paramiko/auth_handler.py", line 208, in wait_for_response
raise e
paramiko.ssh_exception.AuthenticationException: Authentication failed.
  

Комментарии:

1. Можем ли мы увидеть сообщение об ошибке?

Ответ №1:

Вы должны использовать свой закрытый ключ для подключения к удаленному серверу. Ваш открытый ключ должен быть уже установлен на стороне сервера, т. Е. Он должен быть указан в ~/.ssh/authorized_keys .

Попробуйте сначала из командной строки, и только потом используйте Python / paramiko. Проверьте разрешения файлов / каталогов, если все это не удается.

Комментарии:

1. привет, спасибо за ответ, я добавил открытый ключ к авторизованным ключам на сервере и могу нормально подключиться из командной строки. Я проверил разрешение и владельцев файлов, а также папку, в которой они находятся, и все правильно. Я изменил key_filename, чтобы указать на мой закрытый ключ, но снова продолжаю получать сообщение об ошибке с ошибкой аутентификации.

Ответ №2:

Оказывается, я просто забыл добавить имя пользователя в строку подключения. теперь работает отлично.