我正在尝试编写一个简单的脚本来连接Cisco C2960切换器。我只是想不通如何重新使用ssh会话来执行两个以上的命令。
关于SO的讨论,
Persistent ssh session to Cisco router
但是那里提供的答案都不能解决我的问题。
这是我的代码:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('xxx',username='xxx',password='xxx',allow_agent=False)
stdin, stdout, stderr = ssh.exec_command('show version')
stdin, stdout, stderr = ssh.exec_command('sh mac brief')
结果是:
Traceback (most recent call last):
File "./test.py", line 10, in <module>
stdin, stdout, stderr = ssh.exec_command('sh mac brief')
File "/usr/lib/python2.6/site-packages/paramiko/client.py", line 363, in exec_command
chan = self._transport.open_session()
File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 658, in open_session
return self.open_channel('session')
File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 746, in open_channel
raise e
EOFError
最佳答案
与Cisco IOS交互时,invoke_shell()最好,我在paramiko中尝试了其他功能,但所有功能均引发错误的EOF文件错误
关于python - Paramiko:连接到Cisco C2960切换器时无法重新使用ssh session ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8151107/