You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决SFTP私钥的‘incorrect padding’错误?

解决SFTP私钥访问的“incorrect padding”错误

核心问题:用错了paramiko的API

你当前代码里的paramiko.hostkeys.HostKeys是用来加载**主机信任列表(类似~/.ssh/known_hosts)**的,不是用来加载用户私钥的,这是导致错误的直接原因。

正确加载私钥的方法

方法1:直接加载无密码私钥

import paramiko

# 加载桌面路径下的私钥文件
private_key = paramiko.RSAKey.from_private_key_file("C:/Users/你的用户名/Desktop/你的私钥文件名")

# 建立SFTP连接
transport = paramiko.Transport(("sftp服务器地址", 22))
transport.connect(username="你的SFTP用户名", pkey=private_key)
sftp = paramiko.SFTPClient.from_transport(transport)

# 示例操作:列出服务器根目录内容
print(sftp.listdir("/"))

# 关闭连接
sftp.close()
transport.close()

方法2:加载带密码的私钥

如果你的私钥设置了保护密码,加载时需要指定密码参数:

private_key = paramiko.RSAKey.from_private_key_file("C:/Users/你的用户名/Desktop/你的私钥文件名", password="你的私钥密码")

额外排查点

  • 确认PuttyGen导出格式:选择Conversion > Export OpenSSH key时,要确保导出的是私钥文件,打开文件查看开头应为-----BEGIN RSA PRIVATE KEY-----,结尾为-----END RSA PRIVATE KEY-----。
  • 检查私钥完整性:确保文件未被截断、修改,可直接用记事本打开验证内容格式。
  • 权限设置:Windows下将私钥文件权限设为仅当前用户可读,避免权限过宽引发的潜在问题。

内容的提问来源于stack exchange,提问作者PeterP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:59:53