#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:
Оказывается, я просто забыл добавить имя пользователя в строку подключения. теперь работает отлично.