下面是当升级到Ubuntu 22.04之后,使用SSH登录就会提示:no hostkey alg。一系列解决方法:
第一种-重新生成key
出现这种问题一般是系统重装(升级)之后,系统没有重新验证生成key导致的。
\
通过ssh-keygen命令重新生成ssh主机秘钥,可以不用重启sshd服务
\
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
第二种方法-删除/ssh下面所有key文件。重启sshd服务使其重新生成key
rm -rf /etc/ssh/ssh*key
systemctl restart sshd
第三种方法是在~/.ssh/config 下添加下面配置
PubkeyAcceptedKeyTypes +ssh-rsa
HostKeyAlgorithms +ssh-rsa
第四种方法是添加下面配置到/etc/ssh/sshd_config中:
Include /etc/ssh/sshd_config.d/*.conf
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
前面两种方法一般解决低版本访问高版本导致的问题,而后面两种方法解决默认SSH不支持RSA验证导致的问题。