服务器端SSHD服务自8.2开始默认不再支持RSA算法,所以当使用rsa算法生成密钥后,XShell通过密钥连接时提示:请输入密码 (实际上未设置密码)。但是通过其他linux服务器ssh命令或者windows的内置linux连接是可以的(ssh -i "xxx.pem" ec2-user@ip)
本文中使用亚马逊Linux2023 , OpenSSH_8.7p1版本。
XShell连接问题解决方式如下:
1. 先通过 ssh -i 密钥 用户名@ip 方式登录到服务器
2. ssh-keygen -t ecdsa 或者 ssh-keygen -t ed25519 生成非对称加密密钥,根据提示选择保存位置和密码 (默认保存在当前用户目录文件夹.ssh目录下)
3. 生成的id_xxx和id_xxx.pub为私钥和公钥
4. 将公钥导入服务器,cat id_xxx.pub >> authorized_keys
5. 将id_xxx私钥文件保存到本地计算机,使用XShell选择公钥连接,导入该私钥连接即可