服务器版本 centos8,将ssh8.1升级至9.1
rpm资源包下载:升级ssh所需要的rpm资源包
1、升级所需要的shell命令,依次执行
ssh -V #查看升级前的ssh版本
rpm --version #查看rpm版本
# 如果rpm命令报错,执行下面命令修复
## 解决rpm命令报错的方法
vim /etc/profile
## 把下面一句追加在最后面
export LD_LIBRARY_PATH=/usr/lib64:$UNISONHOME/bin:$GSKIT_LIBPATH:$OPENSSL_LIBPATH:$LD_LIBRARY_PATH:.:$UNISONHOME/ITA/cpa/ita/lib:$UNISONHOME/CLI/bin
source /etc/profile #重新加载环境变量
rpm --version # 再次查看rpm版本号
## 然后升级ssh,将上面的对应版本的压缩包解压,tar xvf FileName.tar
## 我用的是OpenSSH_9.2p1_CentOS8_x86_64_rpm.tar
rpm -Uvh *.rpm
# OPENSSH升级后,/etc/ssh/sshd_config会还原至默认状态,我们需要进行相应配置:
cd /etc/ssh/
chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
echo “PermitRootLogin yes” >> /etc/ssh/sshd_config
echo “PasswordAuthentication yes” >> /etc/ssh/sshd_config
systemctl restart sshd
# 如果这里重启失败,执行\cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd 进行修复
# 再次重启并设置开机自启
systemctl restart sshd.service
systemctl enable sshd.service
# 查看ssh版本
ssh -V
服务器版本 centos8,将ssh8.1升级至9.2
升级ssh至9.2
1、备份配置
cp -r -a /etc/ssh/ /etc/ssh.bak/
cp -r -a /etc/pam.d/ /etc/pam.d.bak/
执行更新操作
unzip openssh-9.3p1.zip
rpm -Uvh openssh-.rpm (如果报libcrypto.so.1.1()(64bit) is needed by openssh-9.4p1-1.el7.x86_64 使用命令 rpm -Uvh openssh-.rpm --nodeps --force)
恢复sshd备份的配置
echo “PermitRootLogin yes” >> /etc/ssh/sshd_config
//注意检查UsePAM yes、PermitRootLogin yes、PasswordAuthentication yes,如果不是需要手动调整下,
//也可以用备份的/etc/ssh.bak/sshd_config替代
恢复pam.d/sshd备份的配置
vi /etc/pam.d/sshd 将原本的全删除,将下列内容拷贝进去: //可以使用备份的/etc/pam.d.bak/sshd覆盖,也可以直接把以下内容替换。(pam.d/sshd是解决密码正确但是ssh登录不进去的问题)
#%PAM-1.0
auth substack password-auth
auth include postlogin
account required pam_sepermit.so
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session optional pam_motd.so
session include password-auth
session include postlogin
删除ssh密钥
rm -rf /etc/ssh/ssh_host_* //#如果发现dsa密钥缺了 ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
重启sshd服务
查看状态
[root@localhost ~]# systemctl status sshd
重启sshd
[root@localhost ~]# systemctl restart sshd
重启失败,如果报错,可以看看是不是下面的:
1、启动失败,报缺少.so,重装ssl,重装后依旧报错:sshd -t查看原因,如果原因是 /etc/ssh/sshd_config line 118: Bad SSH2 cipher spec ‘aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,arcfour’.
2、输入命令:ssh -Q cipher,输出结果如下:
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com
3、复制结果,输入命令 vim /etc/ssh//sshd_config 找到ciphers ,将其注释,添加Ciphers ,然后将复制的结果用逗号分隔,添加在其后面
4、再次重启systemctl restart sshd,依旧失败后再次sshd -t查看原因,如果是 :/etc/ssh/sshd_config line 120: Bad SSH2 mac spec ‘hmac-sha1,hmac-ripemd160,umac-64@openssh.com’.
5、输入命令:ssh -Q mac,输出结果如下:
hmac-sha1,hmac-sha1-96,hmac-sha2-256,hmac-sha2-512,hmac-md5,hmac-md5-96,umac-64@openssh.com,umac-128@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-md5-etm@openssh.com,hmac-md5-96-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com
6、复制结果,输入命令 vim /etc/ssh//sshd_config 找到Macs ,将其注释,添加Macs ,然后将复制的结果用逗号分隔,添加在其后面
再查看sshd状态
[root@localhost ~]# systemctl status sshd
原文链接:https://blog.csdn.net/enchanterzj/article/details/130462245