使用私钥连接到服务器时,pysftp AuthenticationException

hea*_*oul 3 python ssh sftp paramiko pysftp

我正在尝试连接到SFTP服务器。我有一个私钥和一个密码。我尝试阅读有关SO的相关问题,但无法成功连接。

这是我尝试过的:

pysftp.Connection(host=<hostname>, username=<username>,
                  password=<password>, private_key=<path to .ppk file>)
Run Code Online (Sandbox Code Playgroud)

AuthenticationException:验证失败

pysftp.Connection(host=<hostname>, username=<username>,
                  private_key_pass=<password>, private_key=<path to .ppk file>) 
Run Code Online (Sandbox Code Playgroud)

SSHException:不是有效的DSA私钥文件

但是,我可以使用相同的凭据并与FileZilla连接。FileZilla要求输入密码,然后将该.ppk文件转换为不受保护的文件。

我尝试使用与FileZilla中使用的主机名,用户名和密钥文件相同的主机名,用户名和密钥文件,但我仍然遇到错误。还尝试使用Paramiko连接。

hea*_*oul 9

我终于可以连接了。

.pem使用PuTTY 将文件转换为文件。传递了此.pem文件,并使其余参数与以前相同。

pysftp.Connection(host='hostname', username='username',
                   password='password', private_key='path to .pem file')
Run Code Online (Sandbox Code Playgroud)

希望这对遇到类似问题的人有所帮助。

  • 这是将 .ppk 转换为 .pem 的不错的说明,反之亦然:https://aws.amazon.com/premiumsupport/knowledge-center/convert-pem-file-into-ppk/ (3认同)