496 字
2 分钟
记录 AWS EC2 云服务器使用 finalshell 无法连接的问题
万里付卡薅的
2025-08-21
统计加载中...

背景#

用万里付卡薅了一台 AWS 创建的 EC2 云服务器实例在实例页面可以连接,但使用 finalshell 却一直连接不了显示密钥未注册。

在 SSH 协议中,ssh-rsa 签名算法是 SHA-1 的哈希算法和 RSA 公钥算法的结合使用。由于目前 SHA-1 的哈希算法容易受到攻击,OpenSSH 从 8.7 以后版本开始默认不支持 ssh-rsa 签名方案,而我选择的系统版本为 Ubuntu 22.04 默认搭载 OpenSSH 8.9 所以导致了 finalshell 无法连接的问题。

解决方法一:新增密钥类型#

1.用 EC2 Instance Connect 连上服务器后使用下面的命令查看系统支持的密钥:

sudo sshd -T | egrep "pubkey"

2.可以看到 ssh-rsa 不包括在内

pubkeyauthentication yes
pubkeyacceptedalgorithms ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256
pubkeyauthoptions none

3.新增秘钥类型:

vim /etc/ssh/sshd_config

4.按 i 后光标移动到末尾新增:

PubkeyAcceptedKeyTypes +ssh-rsa

5.按 Esc,输入 :wq 保存退出后重启 sshd

systemctl restart sshd

PS:如果报错:“Failed to start sshd.service: Unit sshd.service not found.”,输入下面命令后再返回第五步重启 sshd :

systemctl enable ssh.service

6.再次查看支持的秘钥类型

sudo sshd -T | egrep "pubkey" | grep "ssh-rsa"

可以看到返回如下新增了 ssh-rsa

pubkeyacceptedalgorithms ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa

用 finalshell 连接可以看到连接成功

解决方法二:新建账号密码连接#

1.用 EC2 Instance Connect 连上服务器后使用下面的命令切换到 root

sudo -i

2.设置 root 账户的密码

passwd root

3.切换到 root 并修改配置文件

su root
vim /etc/ssh/sshd_config

4.按 i 末尾新增允许 root 用户登录,允许账号密码登录

PermitRootLogin yes
PasswordAuthentication yes

5.按 Esc,输入 :wq 保存退出后修改目录 /etc/ssh/sshd_config.d 中一个后缀为 “-settings.conf” 的文件,编辑这个文件,内容改为 PasswordAuthentication yes

# 进入目录
cd /etc/ssh/sshd_config.d
# 查看文件
ls
# 修改文件
vim 60-cloudimg-settings.conf
# 修改的内容
PasswordAuthentication yes

6.修改好后重启 sshd 然后到 finalshell 里更改为使用账号密码登录也能看到连接成功。

这篇文章是否对你有帮助?

记录 AWS EC2 云服务器使用 finalshell 无法连接的问题
https://byz.byzz.tech/posts/aws-ec2-finalshell/
作者
北野哲哲
发布于
2025-08-21
许可协议
CC BY-NC-SA 4.0