【问题标题】:Using Paramiko to ssh into ftp servers in Python在 Python 中使用 Paramiko ssh 进入 ftp 服务器
【发布时间】:2026-01-05 09:15:02
【问题描述】:

我正在使用下面的代码 ssh 到 ftp servers:

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("locate my_file.txt")
print ssh_stdout

但是,我正在使用多个服务器,因此我经常替换 server 参数。在我尝试连接的主要ftp server 上,我收到此错误:

socket.error: [Errno 60] Operation timed out

不过,每当我尝试使用其他服务器时,我通常都会收到此错误:

paramiko.ssh_exception.S SHException: 
Server 'ftp.server.org' not found in known_hosts

有没有人知道任何可能的解决方案来解决这些问题中的一个或两个?

【问题讨论】:

  • 哎呀......对不起,我昨天很忙,没有回复你(无论如何下面的答案都是正确的)
  • 您的 ftp 服务器是否运行了 SSH 服务器?请检查它们是否正在运行,并且 22 端口没有被防火墙阻止。

标签: python ssh ftp paramiko


【解决方案1】:

要修复您的第二个错误,您可以告诉 Paramiko 自动添加新服务器:

 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

看看the docs

【讨论】:

    【解决方案2】:

    对于你的第二个问题,你需要在ssh = paramiko.SSHClient()之后添加以下行:

    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    

    这将允许 paramiko 自动接受未知密钥(并且应该允许您通过 SSH 连接到其他服务器)

    【讨论】: