背景
用万里付卡薅了一台 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 yespubkeyacceptedalgorithms 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-256pubkeyauthoptions none3.新增秘钥类型:
vim /etc/ssh/sshd_config4.按 i 后光标移动到末尾新增:
PubkeyAcceptedKeyTypes +ssh-rsa5.按 Esc,输入 :wq 保存退出后重启 sshd
systemctl restart sshdPS:如果报错:“Failed to start sshd.service: Unit sshd.service not found.”,输入下面命令后再返回第五步重启 sshd :
systemctl enable ssh.service6.再次查看支持的秘钥类型
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 -i2.设置 root 账户的密码
passwd root3.切换到 root 并修改配置文件
su rootvim /etc/ssh/sshd_config4.按 i 末尾新增允许 root 用户登录,允许账号密码登录
PermitRootLogin yesPasswordAuthentication yes5.按 Esc,输入 :wq 保存退出后修改目录 /etc/ssh/sshd_config.d 中一个后缀为 “-settings.conf” 的文件,编辑这个文件,内容改为 PasswordAuthentication yes
# 进入目录cd /etc/ssh/sshd_config.d# 查看文件ls# 修改文件vim 60-cloudimg-settings.conf# 修改的内容PasswordAuthentication yes6.修改好后重启 sshd 然后到 finalshell 里更改为使用账号密码登录也能看到连接成功。
这篇文章是否对你有帮助?