SSH 协议横幅

SSH protocol banner

使用 python 中的 Netmiko 库通过 SSH 代理命令自动登录 Cisco,同时执行脚本它 returns ssh 协议横幅问题, 一个星期以来一直试图确定这个问题,但到目前为止还没有运气。 目标主机:Linux 网米科版本:2.3.3 Paramiko:2.5.0

SSH 代理配置 (( ~/.ssh/config)

host jump
hostname 172.16.1.10
IdentitiesOnly yes

host 192.168.1.10
ProxyCommand ssh jump nc %h %p

python 脚本:

#!/usr/bin/env python

from netmiko import ConnectHandler
import paramiko

device = {
   'device_type': 'linux',
   'host': '192.168.1.10',
   'username': 'testuser',
   'password': 'Password',
   'ssh_config_file': '~/.ssh/config',
}
   net_connect = ConnectHandler(**device)
   output1 = net_connect.send_command('uname -a')
   print output1

错误:

No handlers could be found for logger "paramiko.transport"
Traceback (most recent call last):
File "Python_Scripts/connection.py", line 12, in <module>
net_connect = ConnectHandler(**device)
File "/usr/lib/python2.7/site-packages/netmiko/ssh_dispatcher.py", line         228, in ConnectHandler
return ConnectionClass(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/netmiko/base_connection.py", line 312, in __init__
self.establish_connection()
File "/usr/lib/python2.7/site-packages/netmiko/base_connection.py", line 858, in establish_connection
self.remote_conn_pre.connect(**ssh_connect_params)
File "/usr/lib/python2.7/site-packages/paramiko/client.py", line 397, in connect
t.start_client(timeout=timeout)
File "/usr/lib/python2.7/site-packages/paramiko/transport.py", line 601, in start_client
raise e

paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

我认为这可能与这个问题有关:

https://github.com/ktbyers/netmiko/issues/1259

如果您的设备由于某种原因非常慢并且没有在合理的时间内响应(响应我的意思是显示 SSH 横幅),Paramiko 将引发错误。

我们可能很快就会加入 Paramiko 的 banner_timeout 参数,这样您就可以在 Netmiko 中增加此超时。