SSHException: Error reading SSH protocol banner

Posted sunshinekimi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSHException: Error reading SSH protocol banner相关的知识,希望对你有一定的参考价值。

 

 

 

 

当我在使用ssh  远程connect 另一台机器的server 时出现了错误,错误如下,起初以为是自己代码写的有问题,后来本地了一下看了跑的没问题,我就开始根据报错去查寻原因, 

技术图片

 

 

 

 

起初在论坛博客看到这篇文章,试着看了下意思就是你的self.banner默认源码时间设置只有15s  让我修改源码在transform.py 然后离线安装paramiko ,试了后还是报上面的错,试了下还是没什么用网友的技术贴并不是都实用还得靠自己啊,这里的问题可以排除了,继续找原因,查看sshd端口

paramiko   Exception: Error reading SSH protocol banner

 File "/usr/local/lib/python3.5/site-packages/paramiko/transport.py", line 2044, in _check_banner
    buf = self.packetizer.readline(timeout)
修改:self.banner_timeout = 15
self.banner_timeout = 300
下载:https://src.fedoraproject.org/repo/pkgs/python-paramiko/ 源码. 我选了:paramiko-1.15.2.tar.gz
tar -xzvf  paramiko-1.15.2.tar.gz
cd paramiko-1.15.2  cd parakimo
vim transport.py   :s/self.banner_timeout 修改为:300  (按N 下一个)
cd ..

python3 setup.py build

python3 setup.py install

 

3.查询sshd port 配置

ssh localhost 显示端口竟然是36000

ssh: connect to host localhost port 36000: No route to host

为了确认配置是不是被人改了检查sshd配置:

vi   /etc/ssh/sshd_conf 

一脸的黑线,你懂的端口默认这里是22 被人改成了36000 

技术图片

 

 

重新修改代码port 问题解决:

def run():


ip = ‘192.168.110.136‘
port = 36000

pwd = ‘admin‘
user = ‘root‘
client = SshConnect(ip, user, pwd, port)
res = client.exe_cmd(‘pwd&&cd /usr/local&&pwd‘) # type should be str
log.info(res)

 

以上是关于SSHException: Error reading SSH protocol banner的主要内容,如果未能解决你的问题,请参考以下文章

h3c设备使用paramiko模块连接(SSHException:Channel closed)

python paramiko模块sftp异常:paramiko.ssh_exception.SSHException: EOF during negotiation

Python登录SSH服务遇到报错,paramiko.ssh_exception.SSHException: Channel closed.

如何修复 Phonegap 中的“FCMPlugin Ready ERROR”?

hbase建表时 ERROR: java.io.IOException: Table Namespace Manager not ready yet, try again later

Error execution phase kubelet-start: a Node with name ... and status Ready already exists