参数:"not a valid DSA private key file"
Paramiko: "not a valid DSA private key file"
我正在尝试使用如下所示的私钥文件连接到某些 SFTP:
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Subject: L0709146
Comment: "1024-bit dsa, L0709146@pxz102, Wed Jan 12 2022 11:25:54 +010\
0"
P2/bla...bla...bla
---- END SSH2 ENCRYPTED PRIVATE KEY ----
使用以下代码:
import paramiko
path = "path/to/my/file"
transport = paramiko.Transport((self.host, self.port))
transport.connect(username=self.user,pkey=paramiko.DSSKey.from_private_key(open(path)))
# ^^^ Error line ^^^
#transport.connect(username=self.user,pkey=paramiko.RSAKey.from_private_key(open(path)))
#transport.connect(username=self.user,pkey=paramiko.ECDSAKey.from_private_key(open(path)))
sftp = paramiko.SFTPClient.from_transport(transport)
logging.info(sftp.listdir())
我不确定,但我知道这是一个 DSA 私钥文件,但我得到了错误:
paramiko.ssh_exception.SSHException: not a valid DSA private key file
我尝试了其他选项,但出现了类似的错误
paramiko.ssh_exception.SSHException: not a valid RSA private key file
paramiko.ssh_exception.SSHException: not a valid EC private key file
paramiko.ssh_exception.SSHException: not a valid OPENSSH private key file
我使用了 FileZilla 客户端,连接到 SFTP 没有问题,我不明白为什么 Python 我有问题。
您有一个很少使用的 ssh.com 格式的私钥。 Paramiko 不支持它。您必须将其转换为 OpenSSH 格式。
您可以这样使用 ssh-keygen
:
ssh-keygen -i -f sshcomkey > opensshkey
在 Windows 上,您还可以使用 PuTTYgen。
相关问题:
我正在尝试使用如下所示的私钥文件连接到某些 SFTP:
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Subject: L0709146
Comment: "1024-bit dsa, L0709146@pxz102, Wed Jan 12 2022 11:25:54 +010\
0"
P2/bla...bla...bla
---- END SSH2 ENCRYPTED PRIVATE KEY ----
使用以下代码:
import paramiko
path = "path/to/my/file"
transport = paramiko.Transport((self.host, self.port))
transport.connect(username=self.user,pkey=paramiko.DSSKey.from_private_key(open(path)))
# ^^^ Error line ^^^
#transport.connect(username=self.user,pkey=paramiko.RSAKey.from_private_key(open(path)))
#transport.connect(username=self.user,pkey=paramiko.ECDSAKey.from_private_key(open(path)))
sftp = paramiko.SFTPClient.from_transport(transport)
logging.info(sftp.listdir())
我不确定,但我知道这是一个 DSA 私钥文件,但我得到了错误:
paramiko.ssh_exception.SSHException: not a valid DSA private key file
我尝试了其他选项,但出现了类似的错误
paramiko.ssh_exception.SSHException: not a valid RSA private key file
paramiko.ssh_exception.SSHException: not a valid EC private key file
paramiko.ssh_exception.SSHException: not a valid OPENSSH private key file
我使用了 FileZilla 客户端,连接到 SFTP 没有问题,我不明白为什么 Python 我有问题。
您有一个很少使用的 ssh.com 格式的私钥。 Paramiko 不支持它。您必须将其转换为 OpenSSH 格式。
您可以这样使用 ssh-keygen
:
ssh-keygen -i -f sshcomkey > opensshkey
在 Windows 上,您还可以使用 PuTTYgen。
相关问题: