使用pysftp连接SFTP服务器遇AuthenticationException错误求助
pysftp 密钥认证失败解决方案
- 检查PEM密钥转换完整性:使用Putty Gen转换PPK时,务必选择导出OpenSSH格式,转换过程中正确输入PPK的解密密码,避免密钥内容损坏。转换后打开PEM文件,确认开头是对应算法的标识(如DSA密钥应为
-----BEGIN DSA PRIVATE KEY-----)。 - 显式传入密钥密码:若转换后的PEM密钥仍受密码保护,需在
Connection调用中添加private_key_pass参数,传入PPK的解密密码,示例代码:
import pysftp cnopts = pysftp.CnOpts() cnopts.hostkeys = None srv = pysftp.Connection( host=sftp_host, username=sftp_user, private_key='auth.pem', private_key_pass='你的PPK解密密码', cnopts=cnopts )
- 尝试转换为兼容算法的密钥:部分SFTP服务器对DSA密钥支持有限,可尝试将PPK转换为RSA格式的PEM密钥后重新测试。
- 开启调试日志定位问题:添加paramiko日志输出,查看认证过程的详细报错信息:
import logging logging.basicConfig(level=logging.DEBUG)
内容的提问来源于stack exchange,提问作者mercury
相关产品推荐
相关产品推荐

