宝塔面板使用ssh出现paramiko.ssh_exception.SSHException: Incompatible ssh peer (no acceptable host key)报错解决

问题描述

之前用的colocrossing的服务器,装上了宝塔面板,其他功能都一切正常,但是发现在使用宝塔终端的时候报了下面的错误

未知错误: Traceback (most recent call last):
File "/www/server/panel/class/ssh_terminal.py", line 179, in connect
self._tp.start_client()
File "/www/server/panel/pyenv/lib/python3.7/site-packages/paramiko/transport.py", line 660, in start_client
raise e
File "/www/server/panel/pyenv/lib/python3.7/site-packages/paramiko/transport.py", line 2083, in run
self._handler_table[ptype](self, m)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/paramiko/transport.py", line 2198, in _negotiate_keys
self._parse_kex_init(m)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/paramiko/transport.py", line 2378, in _parse_kex_init
"Incompatible ssh peer (no acceptable host key)"
paramiko.ssh_exception.SSHException: Incompatible ssh peer (no acceptable host key)

报错的截图如下,无法正常使用宝塔面板的终端,但是使用别的ssh是可以正常使用的

原因分析

通过查看这个报错的代码,可以看到是/www/server/panel/class/ssh_terminal.py这个python文件抛出的问题,原因是Incompatible ssh peer (no acceptable host key) 即客户端和服务器之间存在 SSH 主机密钥不兼容的问题。我现在用的这个机器是colocrossing的镜像,其中的ssh是他们的配置,他们的ssh配置貌似与宝塔的终端连接有点不兼容

因为我们不方便修改宝塔的面板的代码,那么解决思路就只有一个,就是让服务器的ssh密钥能够与宝塔兼容(我们无法修改宝塔的代码)

解决方案

我选择重新生成一个密钥,相应的Ubuntu的命令如下

sudo ssh-keygen -A

然后,执行下面的代码重启ssh服务

sudo systemctl restart sshd

问题解决,刷新下宝塔面板的网页,可以发现可以正常连接上ssh了

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,记得载明出处。
内容有问题?想与我交流下?点此哦,欢迎前来交流~
上一篇
下一篇