有关paramiko 使用send和recv的心得和出现的疑问

本文记录了一次使用Python Paramiko模块进行SSH连接时遇到的timeout问题,并详细描述了解决过程,包括通过逐步调试找到问题所在并最终成功实现远程连接。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

最近在学习《python 自动化运维》 一书,书中提到使用paramiko的send和recv来进行远程ssh的命令输入和结果获取,我也尝试使用了下。

开始在连接connect 目标host和port后准备按照书中所说连接堡垒机
channel.send(‘ssh ’ +…………………………….)
准备输入密码
while not buff.endswith(“password: “)
try:
resp = channel.recv(1024).decode(“utf8”)
except Exception as e:
print(…..)
butff+=resp

恰恰就在resp=channel.recv这里出现了问题,一直timeout,
然后我就开始python3 -m pdb ….这个程序,发现竟然调试可以通过,然后将命令一条条贴入交互界面也可以
我想是不是我的机器反应慢,需要等所以运行程序会不行呢,我做了小实验
将程序命令一起迅速全部贴入交互,发现,三次有两次会在resp接受recv这里出错,

于是我在开始在while循环中各种加time.sleep以期望达到顺利接受的目的,后来发现还是徒劳

经过不断尝试,发现在connect堡垒机ssh主机前我们登录Linux也会也有返回,是否是这个影响了具体的接受呢

在connect 后加入了一个resp=channel.recv(1000)
然后在while的第一个try:先sleep 1秒钟,后来发现终于成功了,我发现网上很少有碰到我这个问题的,,,不知道我是个例还是怎么回事

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值