1、升级OpenSSH前,最好开启系统上的Telnet服务,通过Telnet连接系统进行升级操作。以防OpenSSH升级出现问题而连接不上系统。参考:CentOS6/CentOS7上启用Telnet服务
2、备份/etc/ssh目录# cp -rp /etc/ssh /etc/ssh.bak
3、必要软件的安装# yum install gcc zlib zlib-developenssl-devel
4、查看当前OpenSSH版本# ssh -VOpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
5、可以看到,当前版本是OpenSSH 6.6.1p1版本。我们把它升级到OpenSSH 8.0p1版本。
6、下载OpenSSH新版本龅歧仲半打开https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/网皴捩糕皴站选择openssh-8.0p1.tar.gz进行下载#curl -Ohttps://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
7、安装openssh-呖分甾胗8.0p1# tar -zxvf openssh-8.0p1.tar.gz# cd openssh-8.0p1# ./configure这步要注意,如果报错,就需要先解决报错的问题才能进行下一步。只要最后出现如图的类似内容,才说明没问题,可以进行下一步编译了。
8、上一步正常执行后,开始编译安装。# make# make install
9、如果没报错的话,说明升级成功了。执行ssh -V就能看到OpenSSH的客户端升级成功了。# ssh -VOpenSSH_8.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017
10、上面只能说明OpenSSH的客户端开始使用新版本了,但openssh-server服务端还是在用旧版的。所以我们还需要修改一下ssh的服务文件,让它开始使用新的版本。
11、如果前面./configure没指定位置的话,编译后新的sshd服务文件默认是/usr/local/sbin/sshd我们需要修改sshd的服务文件,指向这个新的sshd文件。CentOS6和CentOS7系统修改方法不一样。
12、CentOS6系统:#vim /etc/rc.d/init.d/sshdSSHD=/usr/local/sbin/sshd启用新的ss茑霁酌绡hd后,由于新版本的OpenSSH默认不允许root用户登录,如果需要使用root远程登录,还需要做一下设置。如果不需要,可以直接重启服务。新的OpenSSH的配置文件是在/usr/local/etc/这个目录下,编辑/usr/local/etc/sshd_config:#vim /usr/local/etc/sshd_configPermitRootLogin yes重启服务#service sshd restart
13、CentOS7系统:禁用原先的SSH服务,并移除服务文件# systemctl disable sshd#mv /usr/造婷用痃lib/systemd/system/sshd.service /sshd.service在OpenSSH_8.0p1源码包中,把一些服务文件复制到系统中:#cp contrib/redhat/sshd.init /etc/init.d/sshd#cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam# chmod +x /etc/init.d/sshd修改/etc/init.d/sshd中的SSHD路径:#vim /etc/init.d/sshdSSHD=/usr/local/sbin/sshd启用新的sshd后,由于新版本的OpenSSH默认不允许root用户登录,如果需要使用root远程登录,还需要做一下设置。如果不需要,可以直接重启服务。新的OpenSSH的配置文件是在/usr/local/etc/这个目录下,编辑/usr/local/etc/sshd_config:#vim /usr/local/etc/sshd_configPermitRootLogin yes重启服务:#systemctl daemon-reload#systemctl restart sshd