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

如何在使用python登录后保持paramiko ssh会话打开?,python,session,ssh,Python,Session,Ssh,我正在尝试使用python paramiko在测试环境中通过ssh连接到测试cisco路由器,并在该测试路由器中运行cisco命令 除了一个小细节外,一切都很好。 运行脚本后,我希望ssh会话保持打开状态。(这样我可以手动运行其他命令)。 我想保持ssh会话打开,直到我键入“exit” 我发现了另一个与类似问题的链接,但我无法理解解决方案。 (见此处) 如果有人能帮我,我将不胜感激 我的代码 import paramiko import time def ssh_session(ip):

我正在尝试使用python paramiko在测试环境中通过ssh连接到测试cisco路由器,并在该测试路由器中运行cisco命令

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

如果有人能帮我,我将不胜感激

我的代码

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")

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

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

第13行的注释应该是#向路由器发送启用密码以移动到全局配置模式第13行的注释应该是#向路由器发送启用密码以移动到全局配置模式谢谢您的建议,但我恐怕情况并非如此。我登录到思科路由器,而不是服务器,但我仍然明白你的意思。我只想执行脚本,然后等待更多的手动输入,直到我选择关闭连接。你有什么想法吗?我明白你的意思。paramiko源代码似乎有一个模拟交互式shell的示例,可能会有所帮助:感谢您的建议,但我恐怕情况并非如此。我登录到思科路由器,而不是服务器,但我仍然明白你的意思。我只想执行脚本,然后等待更多的手动输入,直到我选择关闭连接。你有什么想法吗?我明白你的意思。paramiko源代码似乎有一个模拟交互式shell的示例,可能会有帮助: