如何在使用python登录后保持paramiko ssh会话打开?

2024-10-01 11:31:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pythonparamiko在测试环境中ssh到一个测试cisco路由器,并在该测试路由器中运行cisco命令。在

除了一个小细节,一切都很好。 运行脚本之后,我希望ssh会话保持打开状态。(这样我就可以手动运行其他命令)。 我希望在键入“exit”之前保持ssh会话打开 我发现了另一个类似问题的链接,但我无法理解解决方案。 (见此处Python ssh - keep connection open after script terminates

如果有人能帮我,我会很感激的

我的代码

import paramiko
import time

def ssh_session(ip):
    try:
        session = paramiko.SSHClient() #Open the session
        session.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        session.connect(ip, username = "ciscouser1", password = "password")
        connection = session.invoke_shell()

        ####Running Cisco IOS commands###
        connection.send("enable\n")
        connection.send("password1") #sending
        connection.send("\n")
        connection.send("configure terminal\n\n")
        time.sleep(1)
        connection.send("do show ip int brief\n")
        time.sleep(1)
    except paramiko.AuthenticationException:
        print "wrong credentials"
ssh_session("10.10.10.1")

Tags: import命令ipsendparamiko测试环境timesession
1条回答
网友
1楼 · 发布于 2024-10-01 11:31:00

会话超时由SSH服务器控制。据我所知,在客户端保持会话活动的唯一方法是不要处于非活动状态,这可以通过sending null packets来实现。至于如何与帕拉米科具体做这一点我不确定。也许您可以发送某种虚拟命令(或者甚至可以发送一个空字符串?)每隔一段时间?在

相关问题 更多 >