我已经在这个站点和多个其他位置进行了搜索,但我无法解决在执行一条命令后连接和维护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会话不是reused.Any的帮助解决这个问题非常感谢。
发布于 2011-03-09 04:39:19
您的循环就是这样做的
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.221.235', username='nuts', password='cisco', timeout = 30)
while True:
cisco_cmd = raw_input("Enter cisco router cmd:")
stdin, stdout, stderr = ssh.exec_command(cisco_cmd)
print stdout.read()
if cisco_cmd == 'exit': break
ssh.close()将初始化和设置移出循环。编辑: Moved close()
https://stackoverflow.com/questions/5238000
复制相似问题