博客特意编译了适用于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
然后回到第一步进行安装即可。
您好,请问如果是离线升级openssh,执行第一种方法可以吗,不需要安装openssl等依赖吗
我是按照第一种方式升级的 原来的版本是openssh-5.X,升级到了openssh-8.6,查看版本显示的是升级成功了,但是我新建ssh连接的时候,连接不上了。【openssl是1.0.1版本的】,大家有什么办法解决吗?
在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
求解
如果Centos7默认openssl版本不为OpenSSL 1.0.2k,就需要先进行升级:
8.5发布不久,8.6就出来了。真快。坐等作者更新^^
适用于Centos6的8.6p1版本,在哪里下载
问下,为什么升级后版本不对应