中文
当前位置: 国外主机测评 » 资源资讯 » 技术教程 » 正文

Centos7系统升级OpenSSH到openssh-8.*版本的方法

Centos7 系统默认源中 OpenSSH 最新版本是 OpenSSH_7.4p1,因此无法通过:yum update -y openssh命令升级到更高版本。然而 OpenSSH_7.4p1 版本已经严重落后并被爆出有多个高危漏洞,下面本文就分享一下 Centos7.* 系统升级 OpenSSH 到 openssh-8.* 版本的方法。

Centos7系统升级OpenSSH到openssh-8.*版本的方法

注意:升级前请务必对系统进行快照备份,以免升级过程中出现异常无法恢复。

下载rpm包(以8.8示例)

wget https://www.02405.com/wp-content/uploads/2022/06/openssh8.8-c7.tar.gz
tar -zxvf openssh8.8-c7.tar.gz

安装方法一:

rpm -Uvh *.rpm

安装方法二(此方法会自动处理依赖关系,推荐使用):

yum install ./*.rpm

部分机器使用方法二安装会提示依赖问题,可以使用以下方法:

yum update *.rpm

至此,升级完成,如果之前升级过的,下面的就不用看了,直接新开SSH终端连接即可。

因为 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

注意:升级后重启SSH可能出现以下错误:

It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Unable to load host key "/etc/ssh/ssh_host_ed25519_key": bad permissions
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
[FAILED]
sshd.service: control process exited, code=exited status=1
Failed to start SYSV: OpenSSH server daemon.
Unit sshd.service entered failed state.
sshd.service failed.

解决办法:

chmod 0600 /etc/ssh/ssh_host_ed25519_key
service sshd restart

即可解决。

注意,/etc/pam.d/sshd 也文件会被覆盖,我们进行还原:
先清空:

>/etc/pam.d/sshd;

再还原:

echo '#%PAM-1.0
auth       required     pam_sepermit.so
auth       include      password-auth
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    optional     pam_keyinit.so force revoke
session    include      password-auth'>/etc/pam.d/sshd

至此,升级完成,先别关闭终端,直接新开一个终端,连接到服务器测试。

注意:如果新开终端连接的时,root 密码报错,并且已经根据上面后续操作,那可能就是 SElinux 的问题,我们进行临时禁用:

setenforce 0

即可正常登录,然后修改 /etc/selinux/config 文件:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

进行永久禁用SElinux即可。

附:8.5-8.8版本编译好的rpm包文件,你也可以下载后手动上传到服务器安装,安装方法与上面相同。

openssh8.6-c7.zip
openssh-8.5p1-1.el7_.tar.gz

本文安装方法及rpm包均转载自:https://cikeblog.com/,感谢大佬分享。

声明: 1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。 2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。 3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。 4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。 版权声明:本站采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权, 转载请注明出处。国外主机测评 » Centos7系统升级OpenSSH到openssh-8.*版本的方法

相关文章