现象和原因:
openssh升级新版本后,旧的算法不再支持,导致CRT工具远程连接的时候连接不上
(旧的客户端不能连接新的服务端)
解决办法:
在ssh服务端配置添加配置如下:
#添加支持的加密算法
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
#添加ssh-rsa算法
HostKeyAlgorithms +ssh-rsa
https://www.openssh.com/txt/release-8.8
http://www.openssh.com/releasenotes.html#9.0
参考:
ssh连接不上解决_aiqing0119的博客-优快云博客_kexalgorithms
针对使用密钥方式登录服务器的升级步骤总结如下:
支持密钥+密码方式访问
-----------------------------------------------------------
#备份现有的配置文件和权限文件
cp -rp /etc/ssh /etc/ssh_backup
cp -rp /etc/pam.d/sshd /etc/pam.d/sshd_backup
#上传升级包到服务器进行解压,切换到解压后的目录
cd openssh9.0p1
#关闭selinux,需要修改/etc/selinux/config disabled
setenforce 0
#升级安装
yum localinstall -y ./openssh*.rpm
#给文件授权
chmod 400 /etc/ssh/ssh_host_*
#检查配置文件中是否开启允许root远程登录和密码登录,没有开启执行以下两句
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
#修改配置
vim /etc/ssh/ssh_config
Host *
PubkeyAcceptedKeyTypes=+ssh-rsa
vim /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#是否允许密码登陆,no为不允许
PasswordAuthentication yes
#如果密码和密钥都使用在末尾加上此行代码
#AuthenticationMethods publickey,password
#允许的加密算法
Pubkeyacceptedkeytypes ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
#替换sshd授权文件内容
cat sshd > /etc/pam.d/sshd
#重启服务
systemctl restart sshd && systemctl enable sshd
#升级完成后清理
rm -rf /home/openssh9.0p1
#验证
ssh -V