当我在使用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)
原文地址:https://www.cnblogs.com/SunshineKimi/p/11731065.html