Centos6下rpm升级OpenSSH到openssh-8.5p1版本

博客特意编译了适用于Centos6的8.6p1版本进行分享

为保证顺利升级:

注意:如果机器做过安全基线整改,建议先自行备份/etc/pam.d/sshd文件,升级后,此文件会被覆盖,如果未修改过,按照文章后续的进行覆盖即可。亦请务必确定系统版本为:CentOS7。

请确定openssh版本为7.x,openssl版本为 OpenSSL 1.0.2k及以上。(正常来说,系统都为以上版本。)

下载:

wget https://cikeblog.com/s/openssh-8.5p1-1.el6.tar.gz
tar -zxvf openssh-8.5p1-1.el6.tar.gz

安装方法一:

rpm -Uvh *.rpm

安装后会如下提示:

[root@test ~]# rpm -Uvh *.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:openssh-8.1p1-1.el7              ################################# [ 14%]
   2:openssh-clients-8.1p1-1.el7      ################################# [ 29%]
   3:openssh-server-8.1p1-1.el7       ################################# [ 43%]
   4:openssh-debuginfo-8.1p1-1.el7    ################################# [ 57%]
Cleaning up / removing...
   5:openssh-server-7.4p1-16.el7      ################################# [ 71%]
   6:openssh-clients-7.4p1-16.el7     ################################# [ 86%]
   7:openssh-7.4p1-16.el7             ################################# [100%]
[root@test ~]# ssh -V
OpenSSH_8.1p1, OpenSSL 1.0.2k-fips  26 Jan 2017
[root@768 ~]#

安装方法二(此方法会自动处理依懒关系):

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即可。

注意:
如果Centos7默认openssl版本不为OpenSSL 1.0.2k,就需要先进行升级:

yum install openssl -y

然后回到第一步进行安装即可。

» 本文链接:Centos6下rpm升级OpenSSH到openssh-8.5p1版本
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。
评论 ( 16)
  1. avatar
    沙发
    alex 2021-06-22 15:00

    您好,请问如果是离线升级openssh,执行第一种方法可以吗,不需要安装openssl等依赖吗

  2. avatar
    板凳
    一缕阳光 2021-06-03 15:14

    我是按照第一种方式升级的 原来的版本是openssh-5.X,升级到了openssh-8.6,查看版本显示的是升级成功了,但是我新建ssh连接的时候,连接不上了。【openssl是1.0.1版本的】,大家有什么办法解决吗?

    • avatar
      回复
      刺客 2021-06-03 15:16
      @一缕阳光 文章里面写了解决办法。 /etc/pam.d/sshd恢复下。
      • avatar
        回复
        一缕阳光 2021-06-03 15:28
        @刺客 Authorized users only. All activity may be monitored and reported 清空sshd文件内容,加完配置后 我在没断掉的ssh窗口ssh连接,报上面这个错误
        • avatar
          回复
          刺客 2021-06-03 15:50
          @一缕阳光 这是升级后的正常提示,无需理会。
  3. avatar
    地板
    门斯 2021-04-27 06:49

    在centos6.6下执行yum install ./*rpm报如下错误:
    Error: Package: openssh-askpass-5.3p1-104.el6.x86_64 (c6-media)
    Requires: openssh = 5.3p1-104.el6
    Removing: openssh-5.3p1-104.el6.x86_64 (@anaconda-CentOS-201410241409.x86_64/6.6)
    openssh = 5.3p1-104.el6
    Updated By: openssh-8.5p1-1.el6.x86_64 (/openssh-8.5p1-1.el6.x86_64)
    openssh = 8.5p1-1.el6
    You could try using –skip-broken to work around the problem
    You could try running: rpm -Va –nofiles –nodigest

    求解

    • avatar
      回复
      刺猬 2021-04-27 06:55
      @门斯 文章里面写了解决办法,自己多看看吧
  4. avatar
    4 楼
    门斯 2021-04-27 02:35

    如果Centos7默认openssl版本不为OpenSSL 1.0.2k,就需要先进行升级:

    • avatar
      回复
      门斯 2021-04-27 02:37
      @门斯 刚才误操作,我想说的是这里面应该写centos6而不是centos7吧?我怕理解错了。
      • avatar
        回复
        刺猬 2021-04-27 02:38
        @门斯 嗯,因为centos6沿用了centos7的文章而已,导致了口误。
  5. avatar
    5 楼
    qq8554650 2021-04-24 08:39

    8.5发布不久,8.6就出来了。真快。坐等作者更新^^

  6. avatar
    6 楼
    sinhoi 2021-04-21 00:33

    适用于Centos6的8.6p1版本,在哪里下载

    • avatar
      回复
      刺客 2021-04-21 00:35
      @sinhoi 要么自己编译,要么等博客编译好了发布
      • avatar
        回复
        hcldomino 2021-06-14 13:18
        @刺客 @sinhoi https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz,CentOS 6.x和CentOS 7.x通用,测试过了!
        • avatar
          回复
          刺猬 2021-06-14 13:22
          @hcldomino 不瞒你说,博客rpm包就是你这个二进制文件编译的
  7. avatar
    7 楼
    金三君 2021-03-22 03:06

    问下,为什么升级后版本不对应