python ssh实时交互_python – 如何与Paramiko的交互式shell会话进行交互?

作者分享了一段使用Paramiko库在远程服务器上创建交互式SSH会话的代码,但提到其输出中包含不美观的提示符。通过引入Paramiko的interactive.py模块,解决了提示符问题,并简化了shell交互过程。现在,代码可以优雅地隐藏提示符并实现自动交互。
摘要由CSDN通过智能技术生成

我有一些Paramiko代码,我使用invoke_shell方法在远程服务器上请求交互式ssh shell会话.方法概述于此:invoke_shell()

以下是相关代码的摘要:

sshClient = paramiko.SSHClient()

sshClient.connect('127.0.0.1', username='matt', password='password')

channel = sshClient.get_transport().open_session()

channel.get_pty()

channel.invoke_shell()

while True:

command = raw_input('$')

if command == 'exit':

break

channel.send(command + "\n")

while True:

if channel.recv_ready():

output = channel.recv(1024)

print output

else:

time.sleep(0.5)

if not(channel.recv_ready()):

break

sshClient.close()

我的问题是:有没有更好的方式与shell进行交互?上面的工作,但它有两个提示(matt @ kali:〜$和来自raw_input的$)的丑陋,如使用交互式shell的测试运行的屏幕截图所示.我想我需要帮助写入shell的stdin?对不起,我编码不多.提前致谢!

解决方法:

我在Paramiko的GitHub上导入了一个文件interactive.py.导入后,我只需将代码更改为:

try:

import interactive

except ImportError:

from . import interactive

...

...

channel.invoke_shell()

interactive.interactive_shell(channel)

sshClient.close()

标签:paramiko,python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值