You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用libssh连接Debian主机时ssh-rsa算法认证失败问题排查

问题描述

我使用libssh连接运行Debian 8.11和OpenSSH_6.7p1的远程主机,该主机已配置我的RSA公钥。通过命令行可正常连接,但使用libssh连接虚拟机时失败,报错:

"Public key authentication failed: The key algorithm 'ssh-rsa' is not allowed to be used by PUBLICKEY_ACCEPTED_TYPES configuration option"

失败发生在以下代码段中:

static ssh_session start_session(const char* host, const char* user, const char* keyfile, const char* port) {
ssh_session session = ssh_new();
if (session == NULL) {
    fprintf(stderr, "Error creating SSH session\n");
    exit(EXIT_FAILURE);
}

ssh_options_set(session, SSH_OPTIONS_HOST, host);
ssh_options_set(session, SSH_OPTIONS_USER, user);
ssh_options_set(session, SSH_OPTIONS_PORT_STR, port);

int rc = ssh_connect(session);
if (rc != SSH_OK) {
    fprintf(stderr, "Error connecting to virtual machine: %s\n", ssh_get_error(session));
    ssh_free(session);
    exit(EXIT_FAILURE);
}

rc = auth_keyfile(session, keyfile);
if (rc != SSH_AUTH_SUCCESS) {
    fprintf(stderr, "Error authenticating with virtual machine\n");
    ssh_disconnect(session);
    ssh_free(session);
    exit(EXIT_FAILURE);
}

return session;
}

我已尝试更新SSH版本,但问题仍未解决,请问该问题的原因可能是什么?


问题原因及解决方向

核心原因

问题出在libssh的默认安全配置与远程主机的算法支持不匹配:

  • 较新版本的libssh为规避SHA-1签名算法的安全风险,默认在PUBLICKEY_ACCEPTED_TYPES配置中移除了ssh-rsa算法
  • 你的远程主机运行的OpenSSH 6.7p1仅支持传统的ssh-rsa算法,不兼容更安全的rsa-sha2-256/rsa-sha2-512,导致libssh与主机的算法协商失败
  • 命令行的OpenSSH客户端(即使是6.7p1版本)默认允许ssh-rsa,所以能正常连接

解决方法

1. 调整libssh的算法允许列表

在代码的ssh_connect调用前,显式将ssh-rsa添加到允许的公钥算法列表:

// 配置允许的公钥算法,包含ssh-rsa及其他兼容算法
const char* allowed_pubkey_types = "ssh-rsa,rsa-sha2-256,rsa-sha2-512";
ssh_options_set(session, SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES, allowed_pubkey_types);

2. 检查自定义认证函数

如果auth_keyfile是你自己实现的函数,确保它没有硬限制仅使用特定算法,要让libssh自动尝试所有已配置的允许算法;如果是调用libssh原生的ssh_userauth_publickey_file,只需完成上述配置即可。

3. 关于远程主机SSH版本更新的说明

你尝试更新SSH版本无效,是因为Debian 8.11属于旧版发行版,官方源提供的OpenSSH最高版本就是6.7p1,手动编译更高版本可能引发兼容性问题,因此优先修改libssh配置是更稳妥的方案。


内容的提问来源于stack exchange,提问作者Guilherme Moreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 01:15:00