Connecting to host.
SSH connection failure.
Unable to negotiate with 192.168.1.18 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
Device test failed.
在使用qt creator 连接通用linux设备时
解决办法:
方法1. ssh命令指定算法,每次指定比较麻烦
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa user@host -p 2222
方法2. 修改ssh配置文件 ~/.ssh/config, 增加配置项,一劳永逸
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
no matching host key type found. Their offer: ssh-rsa 问题解决_我不知道也不关心的博客-CSDN博客
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
这个问题可能是由于SSH客户端和服务器之间的主机密钥类型不匹配导致的。你可以尝试以下方法解决这个问题:
1、 在Qt Creator中,打开项目的.pro文件,添加以下内容:
CONFIG += console
CONFIG -= app_bundle
TARGET = your_project_name
TEMPLATE = app
将your_project_name
替换为你的项目名称。
2、 在项目的主源文件中,添加以下代码:
#include <QCoreApplication>
#include <QProcess>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QProcess process;
process.start("ssh", QStringList() << "-i" << "/path/to/your/private/key" << "-o" << "StrictHostKeyChecking=no" << "192.168.1.18");
process.waitForFinished();
if (process.exitCode() == 0) {
qDebug() << "连接成功";
} else {
qDebug() << "连接失败:" << process.readAllStandardError();
}
return a.exec();
}
将/path/to/your/private/key
替换为你的私钥文件路径。
3、 重新编译并运行项目,检查是否能够成功连接到Linux设备。如果仍然无法连接,请检查你的私钥文件是否正确,以及你的Linux设备是否允许使用SSH连接。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
【以下回答由 GPT 生成】
在Qt Creator连接通用Linux设备时无法连接到设备的问题通常是由于SSH连接失败引起的。解决这个问题的步骤如下:
检查设备是否已经启用了SSH服务。可以通过运行命令service ssh status
来查看SSH服务的状态。如果服务未运行,请使用service ssh start
启动SSH服务。
确认设备的22端口是否打开。可以使用以下命令检查设备上的22端口是否已经开放:sudo iptables -L -n -v | grep 22
。如果22端口没有打开,请使用sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
打开该端口。
检查SSH配置文件是否正确。SSH配置文件通常位于/etc/ssh/sshd_config
。确保以下配置项被设置正确:
Port 22
:确认SSH服务使用的端口号为22。RSAAuthentication yes
:启用RSA身份验证。PubkeyAuthentication yes
:启用公钥身份验证。PasswordAuthentication yes
:启用密码身份验证。
确认Qt Creator的SSH设置正确。在Qt Creator的项目设置中,找到“设备”选项卡,确保设备类型设置为“Generic Linux Device”并填写正确的设备IP地址和SSH端口号(默认为22)。
确保Qt Creator使用的SSH密钥对是正确的。在Qt Creator的项目设置中,找到“SSH秘钥”选项卡,确保选择了正确的SSH密钥对。如果没有密钥对,可以使用以下命令生成密钥对: ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
运行上述命令后,会在用户的~/.ssh
目录下生成SSH密钥对。将公钥(id_rsa.pub
)复制到设备上的~/.ssh/authorized_keys
文件中。
如果上述步骤都没有解决问题,可能需要检查设备的网络连接,确保设备和Qt Creator所在的计算机在同一局域网中,并且可以相互访问。如果问题仍然存在,可能需要进一步排查设备的SSH配置或网络设置问题。
请注意,上述解决方案仅供参考,具体操作应根据实际情况进行调整。