使用私钥验证失败的pysftp
Authentication failed pysftp with private key
使用 Pysftp 库通过 sftp 连接到服务器,尝试连接时出现身份验证失败。
但是在 filezilla 中使用相同的凭据我能够连接。
from pysftp import CnOpts, Connection
from paramiko import RSAKey
import io
private_key_text = '''
-----BEGIN OPENSSH PRIVATE KEY-----
key removed...
-----END OPENSSH PRIVATE KEY-----
'''
passphrase = 'my_passphrase'
private_key = RSAKey.from_private_key(io.StringIO(private_key_text), password=passphrase)
host = 'host_address'
username = 'username'
cnopts = CnOpts()
target_dir = '/home'
cnopts.hostkeys = None
with Connection(host=host, username=username, private_key=private_key, private_key_pass=passphrase,
cnopts=cnopts, default_path=target_dir) as sftp:
print(f'Successfully connected to remote SFTP server [{host}]')
Paramiko 最近在 2.9.x 中添加了一些代码,这会导致 paramiko.ssh_exception.AuthenticationException('Authentication failed.')
异常。尝试显式安装 paramiko==2.8.1
并查看问题是否仍然存在。
在 https://www.paramiko.org/changelog.html
查看 2.9.0 的更改日志说明
这里还有这个问题:https://github.com/paramiko/paramiko/issues/1961
使用 Pysftp 库通过 sftp 连接到服务器,尝试连接时出现身份验证失败。
但是在 filezilla 中使用相同的凭据我能够连接。
from pysftp import CnOpts, Connection
from paramiko import RSAKey
import io
private_key_text = '''
-----BEGIN OPENSSH PRIVATE KEY-----
key removed...
-----END OPENSSH PRIVATE KEY-----
'''
passphrase = 'my_passphrase'
private_key = RSAKey.from_private_key(io.StringIO(private_key_text), password=passphrase)
host = 'host_address'
username = 'username'
cnopts = CnOpts()
target_dir = '/home'
cnopts.hostkeys = None
with Connection(host=host, username=username, private_key=private_key, private_key_pass=passphrase,
cnopts=cnopts, default_path=target_dir) as sftp:
print(f'Successfully connected to remote SFTP server [{host}]')
Paramiko 最近在 2.9.x 中添加了一些代码,这会导致 paramiko.ssh_exception.AuthenticationException('Authentication failed.')
异常。尝试显式安装 paramiko==2.8.1
并查看问题是否仍然存在。
在 https://www.paramiko.org/changelog.html
查看 2.9.0 的更改日志说明这里还有这个问题:https://github.com/paramiko/paramiko/issues/1961