首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用Python连接服务器,但PuTTY Plink工作

无法使用Python连接服务器,但PuTTY Plink工作
EN

Stack Overflow用户
提问于 2021-08-18 09:30:42
回答 2查看 579关注 0票数 1

对不起,如果这听起来太基本了,或者如果我在搜索过程中没有找到一个副本的话:

例如,这些建议没有任何帮助:

ftplib的例子或其他教程中的例子对我来说是行不通的,这些文档更令人困惑,而不是有帮助。我一定是做了一些基本的错误,或者我的网络配置中有一些特殊的设置可能会妨碍ftplib正常工作?我的配置。Win10上的Python3.6.3。

我的问题是:下面的代码有什么问题?

代码语言:javascript
运行
复制
import ftplib

host = '0.0.0.0'
user = 'user'
passwd = 'XXXX'

with ftplib.FTP(host=host, user=user, passwd=passwd) as ftp:
    print(ftp.dir())

过了一段时间,我得到了错误消息:

TimeoutError: WinError 10060连接尝试失败是因为连接方在一段时间后没有正确响应,或者已建立连接失败是因为连接主机没有响应

使用plink的不同方法

但是,在命令行中,使用plink对我来说很好。因此,主机、用户、密码或连接似乎没有任何问题。

代码语言:javascript
运行
复制
plink -ssh -batch user@0.0.0.0 -pw XXXX "cd SubDir/SubSubDir/; ls"

但我认为,与其与plinksubprocess混在一起,ftplib可能更方便。谢谢你的暗示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-20 17:36:13

Plink是SSH客户端。SSH与FTP无关。您可能想要连接到SFTP,这是一个运行在SSH之上的完全不同的协议。

对于Python中的SFTP,使用Paramiko或pysftp。

票数 1
EN

Stack Overflow用户

发布于 2021-08-19 12:16:02

也许可以尝试一种不同的方法,首先确保通过ping连接到目标IP,然后尝试使用ftplib登录。举个例子,让我知道这是否是你的方向:

代码语言:javascript
运行
复制
import ftplib
from ftplib import FTP , error_perm
import subprocess
import time

def ping_to_target (ip):
    print(f"Ping ---> {ip}")
    process = subprocess.Popen("ping " + ip + " -n 10 " , shell=True , stdout=subprocess.PIPE)
    time.sleep(0.5)
    for line in process.stdout:
        if b"Destination" in line or b"Request timed out" in line or b"failure" in line:
            return False
    print(f"ping ---> {ip} done")
    return True

def some_func(host , username , password):
    if not ping_to_target(host):
        return False
    # CONNECT TO TARGET
    ftp = FTP (host)
    ftp.login(username , password)
    ftp.getwelcome()

我希望这就是你问题的意思。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68829833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档