在 pysftp 连接字符串中指定端口并不简单

这有效:


cnopts = pysftp.CnOpts()

cnopts.hostkeys = None


with pysftp.Connection('ftpsite.com', username='xxx', password='xxx', cnopts=cnopts) as sftp:

    with sftp.cd('inbox'):             

    sftp.get('WinSCP.ini')  

但现在我想直接测试 ftp(端口 21),所以我添加了端口属性:


with pysftp.Connection('ftpsite.com', port=21 , username='xxx', password='xxx', cnopts=cnopts) as sftp:

现在我明白了:


异常:paramiko.ssh_exception.SSHException 消息:读取 SSH 协议横幅时出错


我很困惑...


SMILET
浏览 235回答 2
2回答

哈士奇WWW

pysftp 库仅使用 SFTP 协议进行对话,这与“普通”FTP 协议不同。因此,当您的程序尝试通过 SFTP 与 FTP 服务器通信时,您看到的是错误,并且不理解它返回的响应。

冉冉说

SFTP 使用 SSH,所以它的端口是 22,而不是 21FTP 使用端口 21就像错误所说的,ssh 异常。尝试使用 'port=22'来源:port 21     Yes, and SCTP   Assigned    Official    File Transfer Protocol (FTP) control (command)port 22     Yes, and SCTP   Assigned    Official    Secure Shell (SSH), secure logins, file transfers (scp, sftp) and port forwarding 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python