使用 Paramiko 连接到端口 21 并得到 paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

Connecting to port 21 with Paramiko and got paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

我正在尝试通过 Paramiko 连接到 SFTP 服务器。我没有主机密钥。以下代码是我的尝试,它给我一个错误:

paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

我注意到在其他给出的例子中端口通常是 22,但是我得到的 SFTP 端口是 21。当我尝试 22 时,它给了我另一个错误提示

Unable to connect to port 22

提前感谢您的指导和见解。如果我可以提供更多信息,请告诉我。

from paramiko.client import SSHClient
from paramiko import AutoAddPolicy

client = SSHClient()
client.set_missing_host_key_policy(AutoAddPolicy())

client.connect(hostname="a_private_ip",
               port=21,
               username="user",
               password="xxx")

sftp_handle = client.open_sftp()

Paramiko 是 SFTP 客户。 SFTP 使用端口 22.

如果给你端口 21,那么它很可能不是 SFTP。 FTP 使用端口 21。 FTP 的加密变体,也称为 FTPS,也使用 21。人们有时会把它误认为是 SFTP.

对于 FTP 使用来自 ftplib 的 FTP class 来自 ftplib. For FTPS use FTP_TLS class