SFTP 服务器身份验证需要用户名和私钥

问题描述 投票:0回答:1

我们有启用身份验证的 SFTP 服务器。要访问服务器,我们需要提供密码和私钥。我可以使用winscp 访问服务器。但无法使用python代码访问。

我尝试过 pysftp 和 paramiko 模块,但没有运气。当我检查 paramiko 模块时,如果在连接调用中传递私钥,它不会考虑密码。

下面是我的代码,请您检查建议我是否有任何方法可以解决这个问题。

使用paramiko编码

client = paramiko.client.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
pk = paramiko.RSAKey.from_private_key_file('private_key_path')
client.connect('sftp.exmple.com', username='username', port=22, password='password', pkey=pk)
client.open_sftp()

使用pysftp编码

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None  
with pysftp.Connection('sftp.exmple.com', username='usernmae', port=22, password='password', cnopts=cnopts, private_key='private_key_path') as sftp:
    sftp.put('test.txt','/tmp')
    sftp.close()
python python-3.x paramiko pysftp
1个回答
0
投票

如果您在日志记录中使用调试模式,将会更好地理解 导入日志记录 日志记录.调试

© www.soinside.com 2019 - 2024. All rights reserved.