【问题标题】:Python sftp paramiko [duplicate]Python sftp paramiko [重复]
【发布时间】:2023-02-23 01:56:13
【问题描述】:

帕拉米科 2.11.0

import paramiko
import io
    host = "sftp.host.com"
    port = 2222
    username = username
    private_key_file = io.StringIO()
    private_key_file.write('-----BEGIN RSA PRIVATE KEY-----\nAAAAB3NzaC\n-----END RSA PRIVATE KEY-----\n')
    private_key_file.seek(0)
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    ssh.connect(hostname=host,port=port,username=username,pkey=private_key_file)

错误:

in missing_host_key(self, client, hostname, key)
837             ),
838         )
\--\> 839         raise SSHException(
840             "Server {!r} not found in known_hosts".format(hostname)
841         )

SSHException: Server '\[sftp.host.com\]:2222' not found in known_hosts

如果我添加:

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
"Error: AttributeError: '\_io.StringIO' object has no attribute 'get_fingerprint' "

【问题讨论】:

标签: python sftp paramiko


【解决方案1】:
private_key = StringIO('-----BEGIN RSA PRIVATE KEY-----
AAAAB3NzaC
-----END RSA PRIVATE KEY-----
')
pk = paramiko.RSAKey.from_private_key(private_key)

试试看?

【讨论】:

  • 无效的语法,不可能工作。如果没有别的,缺少引号。
  • 还,为什么他们会尝试吗?请记住解释为什么要推荐您推荐的代码。如果你知道这有效,那就太好了!但是,如果您只是出于调试目的而猜测:猜测不是答案,请在评论中询问他们的详细信息 =)
  • (也不清楚 OP 的问题与没有私钥集有什么关系;所以正如 Mike 所说,解释这与问题有什么关系是有帮助的)
  • 关键没有通过?我添加了引号。我指的是第二个问题。