帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 镜像
  6. 镜像FAQ
  7. 使用实例时镜像相关问题
  8. 使用RSA密钥无法登录ECS实例问题

使用RSA密钥无法登录ECS实例问题

  • 使用实例时镜像相关问题
  • 发布于 2025-04-01
  • 3 次阅读
文档编辑
文档编辑

当您使用Ubuntu、CentOS Stream 9等操作系统的ECS实例,且通过RSA密钥在FinalShell、nuoshell等部分SSH客户端连接ECS实例时,可能出现登录失败的问题,您可以参考本文的操作进行解决。

背景信息

RSA加密算法是一种非对称加密算法,在公开密钥加密和电子商业中RSA被广泛使用。 非对称加密算法包含公钥(Public Key)和私钥(Private Key),公钥和私钥是一种通过算法得到的密钥对,在ECS中创建的密钥对默认采用RSA加密方式。更多信息,请参见SSH密钥对概述。

Ubuntu 22.04无法使用RSA密钥登录

在SSH协议中,ssh-rsa签名算法是SHA-1的哈希算法和RSA公钥算法的结合使用。由于目前SHA-1的哈希算法容易受到攻击,OpenSSH从8.7以后版本开始默认不支持ssh-rsa签名方案。

说明

默认不支持ssh-rsa签名方案并不意味着停止使用RSA密钥,密钥可以通过多种算法进行签名,RSA密钥可以使用rsa-sha2-256(rsa/SHA256)、rsa-sha2-512(rsa/SHA512)等多种签名算法来进行签名,只有ssh-rsa(rsa/SHA1)签名算法被默认禁用。

问题现象

使用FinalShell、nuoshell等部分SSH客户端软件通过RSA密钥远程连接ECS实例时,SSH客户端提示登录失败,sshd服务日志提示如下:

userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth] 

问题原因

在最新版本的操作系统中,OpenSSH默认不再支持ssh-rsa(rsa/SHA1)签名算法,如果指定使用ssh-rsa(rsa/SHA1)签名算法将会登录失败。由于FinalShell、nuoshell等部分SSH客户端软件默认仅支持使用ssh-rsa(rsa/SHA1)签名算法,不能兼容使用rsa-sha2-256(rsa/SHA256)或者rsa-sha2-512(rsa/SHA512),所以无法登录。

解决方案

您可以通过以下任一种方案解决该问题:

  • 方案一:使用ECDSA或者DSA等其他加密方式。

  • 方案二:使用其他SSH客户端进行登录,例如阿里云自带的Workbench。关于Workbench连接方式的更多信息,请参见使用Workbench连接实例。

  • 方案三:运行以下命令,在sshd配置中允许使用ssh-rsa(rsa/SHA1)的签名算法。

    重要

    由于ssh-rsa(rsa/SHA1)签名算法并不安全,请您谨慎操作。

    echo 'PubkeyAcceptedAlgorithms=+ssh-rsa' >> /etc/ssh/sshd_config
    systemctl restart sshd

CentOS Stream 9等系统无法使用RSA密钥登录

涉及系统范围

  • CentOS Stream 9

  • AlmaLinux 9

  • Rocky Linux 9

  • Red Hat Enterprise Linux 9

  • Fedora 33及以上

问题现象

使用FinalShell、nuoshell等部分SSH客户端软件通过RSA密钥远程连接ECS实例时,SSH客户端提示登录失败,sshd服务日志提示:

userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

问题原因

CentOS Stream 9系列系统在OS内部的crypto-policies策略默认为DEFAULT,在该策略模式下openssh-server禁用了ssh-rsa(rsa/SHA1)签名算法。由于FinalShell、nuoshell等部分SSH客户端软件默认仅支持使用ssh-rsa(rsa/SHA1)签名算法,不能兼容使用rsa-sha2-256(rsa/SHA256)或者rsa-sha2-512(rsa/SHA512),所以无法登录。

说明

您可以通过update-crypto-policies --show命令查看当前系统的策略。

解决方案

您可以通过以下任一种方案解决该问题:

  • 方案一:使用ECDSA或者DSA等其他加密方式。

  • 方案二:使用其他SSH客户端进行登录,例如阿里云自带的Workbench。关于Workbench连接方式的更多信息,请参见ECS远程连接方式概述。

  • 方案三:运行以下命令,切换策略为LEGACY。

    重要

    LEGACY策略模式可能存在未知安全隐患,请您谨慎操作。

    update-crypto-policies --set LEGACY
    update-crypto-policies --show
相关文章

AMD实例更新GuestOS内核后,可能出现性能下降问题的说明 2025-04-01 12:00

本文介绍使用AMD CPU的ECS实例更新GuestOS内核后,可能出现性能下降问题的原因和解决方案。 问题描述 使用A

Linux时间和时区说明 2025-04-01 12:00

本文主要介绍Linux操作系统中时间和时区相关的基本概念与操作,并介绍部分阿里云Linux公共镜像中时钟配置的相关变化。 背景信息 Linux操作系统中时间

UEFI镜像的Windows实例VNC连接后无法修改分辨率 2025-04-01 12:00

使用UEFI镜像的Windows实例VNC连接后,不支持在系统内部修改分辨率,您可以参考本文操作在UEFI配置菜单中修改分辨率。 问题现象 使用UEFI镜像的Windows实例VNC连接后无法修改分辨率。

Windows Server半年渠道镜像与实例管理 2025-04-01 12:00

云服务器ECS提供的Windows Server半年渠道镜像是一款纯Server Core模式运行的操作系统,不提供图形化用户界面。Windows Server半年渠道镜像对硬件要求宽松许多,降低了更新频率并且支持远程管理。本文介绍如何管理由该类镜像创建的Windows Server半年渠道实例。

使用RSA密钥无法登录ECS实例问题 2025-04-01 12:00

当您使用Ubuntu、CentOS Stream 9等操作系统的ECS实例,且通过RSA密钥在FinalShell、nuoshell等部分SSH客户端连接ECS实例时,可能出现登录失败的问题,您可以参考本文的操作进行解决。 背景信息

如何为Linux服务器安装GRUB? 2025-04-01 12:00

通过服务器迁移中心SMC迁移Linux源服务器时,若Linux源服务器未安装GRUB、系统版本较低(如CentOS 5和Debian 7)、自带的系统引导程序GRUB( GRand Unified Bootloader)版本低于2.02,日志文件提示Do Grub Failed时,您需要安装GRUB

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1