python中的ssh连接

时间:2016-10-11 11:20:03

标签: python paramiko

我正在尝试使用python 3.5中的ssh从服务器读取文本文件。我正在使用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.

2 个答案:

答案 0 :(得分:2)

您应该使用私有键连接到远程服务器。您的公开密钥必须已安装在服务器端,即必须在{{1}}中列出。

首先从命令行尝试,然后才使用Python / paramiko。如果全部失败,请检查文件/目录的权限。

答案 1 :(得分:0)

原来我只是忘了在连接字符串中添加用户名。现在工作得很好。