Paw*_*ski 5 python ssh paramiko eoferror
我只有像这样的简单脚本,可以通过诺基亚路由器上的 SSH 连接并执行命令“show time”:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('adres ip', port=22, username='username', password='password')
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('show time')
output = stdout.readlines()
print '\n'.join(output)
ssh.close()
Run Code Online (Sandbox Code Playgroud)
登录节点成功。我看到自己在路由器上,但执行命令不起作用。我收到这样的错误:
Traceback (most recent call last): File "C:\Users\pkudalsk\Desktop\pyt.py", line 6, in <module>
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('show time') File "C:\Users\pkudalsk\Desktop\paramiko\client.py", line 479, in exec_command
chan.exec_command(command) File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 63, in _check
return func(self, *args, **kwds) File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 241, in exec_comman d
self._wait_for_event() File "C:\Users\pkudalsk\Desktop\paramiko\channel.py", line 1198, in
_wait_for_ event
raise e EOFError
Run Code Online (Sandbox Code Playgroud)
有谁知道什么会导致这个问题?我尝试了 python 3.6 和 2.7。结果一样。
谢谢
小智 0
有2个解决方案:
1.- 输入此命令print('\n'.join(output))
2.- 如果问题仍然存在,请不要使用 paramiko,而使用 netmiko。我的诺基亚路由器也有同样的问题,我换成了netmiko。这里有一个例子
from netmiko import ConnectHandler
device = {
'device_type': 'nokia_sros',
#'device_type': 'alcatel_sros',
'ip': 'ip_add',
'username': 'user',
'password': 'password',
'port': 22,
'verbose': True
}
with ConnectHandler(**device) as net_connect:
output = net_connect.send_command('show chassis detail')
print(output)```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |