与Cisco路由器的持久ssh会话
我在这个站点和其他多个位置搜索但我无法解决在一个命令后连接和维护ssh会话的问题。以下是我目前的代码:
#!/opt/local/bin/python
import os
import pexpect
import paramiko
import hashlib
import StringIO
while True:
cisco_cmd = raw_input("Enter cisco router cmd:")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.221.235', username='nuts', password='cisco', timeout = 30)
stdin, stdout, stderr = ssh.exec_command(cisco_cmd)
print stdout.read()
ssh.close()
if cisco_cmd == 'exit': break
我可以运行多个命令,但是对于每个命令,都会创建一个新的ssh会话。
当我需要配置模式因为ssh session时,上面的程序不起作用
没有重复使用。非常感谢任何协助解决这个问题。
没有找到相关结果
已邀请:
4 个回复
队辅坟阮阶
闲窍
需复
将初始化和设置移到循环外部。 编辑:移动关闭()
杭难插
和
,你的ssh会话将被重用,但是每个
都发生在一个新的shell中(通过一个新的通道),并且是无关的。您需要格式化命令,以便它们不需要shell中的任何状态。 如果我没记错的话,某些Cisco设备只允许一个exec,然后关闭连接。在这种情况下,您将需要使用
,并使用
模块(您已经导入但未使用)以交互方式工作。