【问题标题】:Connecting to an Ubuntu Server with Python使用 Python 连接到 Ubuntu 服务器
【发布时间】:2016-12-26 21:35:13
【问题描述】:

我的目标是拥有一个用 Python 编写的基本 FTP 程序。首先,我需要获得更多的知识。我的问题是,如何使用 Python 连接到 Ubuntu 服务器(通过 VirtualBox 托管)?

我曾尝试使用official Python website 上的页面,但使用此页面时出现socket.error: [Errno 61] Connection refused 错误

from ftplib import FTP
ftp = FTP('jordan@10.0.0.12')

This是我使用ftp - FTP('10.0.0.12')时得到的输出

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py", 第 120 行,在 init 中 self.connect(主机)文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py”, 第 135 行,连接中 self.sock = socket.create_connection((self.host, self.port), self.timeout) 文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", 第 575 行,在 create_connection 中 raise err socket.error: [Errno 61] Connection denied

我可以在同一台机器上使用诸如 Transmit 之类的 FTP 程序(相同的端口和 SFTP),它工作正常。

【问题讨论】:

  • 当您尝试以相同方式从命令行 ftp 时会发生什么? ftp jordan@10.0.0.12
  • 从终端使用命令ftp jordan@10.0.0.12 时,我得到同样的错误。
  • 好的,所以它从终端失败,但从传输工作对吗? Transmit 中可能有一些默认设置,例如被动或其他设置。
  • 是的,它在终端中失败了。 (和 Python)
  • 在查看文档时,FTP 接受用户作为单独的参数。不用'jordan@' 试试。如果您能够连接,请将用户名作为单独的参数传递。例如:ftp = FTP('10.0.0.12', 'jordan')

标签: python python-2.7 ftp macos-sierra


【解决方案1】:

Python 的 ftplib 不支持 SFTP,因此使用 PySFTP 可以。

【讨论】:

    【解决方案2】:

    另一种方法是使用 paramiko。

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 2013-08-15
      • 2012-09-10
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      相关资源
      最近更新 更多