您的位置:首页 > 运维架构

编译安装升级openssh 8.4p1

2020-12-29 14:46 1111 查看

编译安装升级openssh 8.4p1

一、安装gcc

1.1、系统环境及注意事项

1.1.1、系统环境

# lsb_release -d
Description:    CentOS release 6.5 (Final)

# uname -r
2.6.32-431.el6.x86_64

当前ssh版本
# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

1.1.2、注意事项

  

1、在升级过程中务必确保当前使用远程工具所连接的ssh会话不断开,如不能保证会话不断开请务必安装telnet服务,使用telnet来替代ssh会话连接服务器后操作升级,由于本例有本地kvm权限故未配置telnet服务升级,telnet安装故略过。

 

2、启动编译后的sshd服务请勿使用restart重启,直接启动即可。

1.2、使用iso配置yum源

   由于系统为basic的安装模式,gcc包不全,所以需要先使用本币yum源的安装方法安装gcc安装。

1.1.1、挂载光驱

  可以使用虚拟机挂载光驱的方式挂载本地Yum源,配置过程如下:

# mount /dev/cdrom /mnt
# # ll /mnt
总用量 682
-r--r--r-- 2 root root     14 11月 29 2013 CentOS_BuildTag
dr-xr-xr-x 3 root root   2048 11月 29 2013 EFI
-r--r--r-- 2 root root    212 11月 28 2013 EULA
-r--r--r-- 2 root root  18009 11月 28 2013 GPL
dr-xr-xr-x 3 root root   2048 11月 29 2013 images
dr-xr-xr-x 2 root root   2048 11月 29 2013 isolinux
dr-xr-xr-x 2 root root 655360 11月 29 2013 Packages
-r--r--r-- 2 root root   1354 11月 28 2013 RELEASE-NOTES-en-US.html
dr-xr-xr-x 2 root root   4096 11月 29 2013 repodata
-r--r--r-- 2 root root   1706 11月 28 2013 RPM-GPG-KEY-CentOS-6
-r--r--r-- 2 root root   1730 11月 28 2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r-- 2 root root   1730 11月 28 2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r-- 2 root root   1734 11月 28 2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r-- 1 root root   3380 11月 29 2013 TRANS.TBL

1.1.2、配置本地yum源文件

# cd /etc/yum.repos.d/
# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo

# mkdir bak
# mv *.repo
# vim iso.repo
复制以下内容到编辑的文件中并保存文件
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt
gpgcheck=0
enabled=1

# yum list | grep gcc       <--检查确认yum源配置正常
libgcc.x86_64                            4.4.7-4.el6                    @anaconda-CentOS-201311272149.x86_64/6.5
compat-gcc-34.x86_64                     3.4.6-19.el6                   c6-media
compat-gcc-34-c++.x86_64                 3.4.6-19.el6                   c6-media
compat-gcc-34-g77.x86_64                 3.4.6-19.el6                   c6-media
gcc.x86_64                               4.4.7-4.el6                    c6-media
gcc-c++.x86_64                           4.4.7-4.el6                    c6-media
gcc-gfortran.x86_64                      4.4.7-4.el6                    c6-media
gcc-gnat.x86_64                          4.4.7-4.el6                    c6-media
gcc-java.x86_64                          4.4.7-4.el6                    c6-media
gcc-objc.x86_64                          4.4.7-4.el6                    c6-media
gcc-objc++.x86_64                        4.4.7-4.el6                    c6-media
libgcc.i686                              4.4.7-4.el6                    c6-media
mingw32-gcc.x86_64                       4.4.6-4.el6                    c6-media
mingw32-gcc-c++.x86_64                   4.4.6-4.el6                    c6-media
mingw32-gcc-gfortran.x86_64              4.4.6-4.el6                    c6-media
mingw32-gcc-objc.x86_64                  4.4.6-4.el6                    c6-media
mingw32-gcc-objc++.x86_64                4.4.6-4.el6                    c6-media\

1.3、yum安装gcc

# rpm -qa |grep  gcc    <--确认当前安装的gcc包
libgcc-4.4.7-4.el6.x86_64

# yum -y install gcc    <--安装gcc
# rpm -qa |grep  gcc
libgcc-4.4.7-4.el6.x86_64
gcc-4.4.7-4.el6.x86_64

二、安装openssh8.4的依赖包

  由于openssh 8.4p1需要openssl1.1.1和zlib的支持,为避免现有服务的影响,采用编译安装openssl1.1.1给openssh使用,使用由于centos6.5本地yum源的zilb包满足openssh 8.4p1所以zlib使用yum安装方式。

2.1、yum安装zlib包

# rpm -qa zlib              <--确认现有安装的zlib包已有zlib但是缺少zlib-devel
zlib-1.2.3-29.el6.x86_6

# yum -y install zlib-devel
# rpm -qa zlib*
zlib-1.2.3-29.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64

2.2、编译安装openssl

  下载地址:https://files-cdn.cnblogs.com/files/luckjinyan/openssl-1.1.1g.tar.gz

# tar zvxf openssl-1.1.1g.tar.gz

# cd openssl-1.1.1g
# ./config --prefix=/usr/local/openssl
# make -j 4 && make install           <--可根据cpu核心数确定make -j的参数

# echo '/usr/local/openssl/lib' >> /etc/ld.so.conf
# ldconfig -v

检查系统自带openssl和编译安装版本是否正常
# cd /usr/local/openssl/bin         <--进入编译安装的目录
# pwd
/usr/local/openssl/bin
# ./openssl version                 <--确认编译版本正常
OpenSSL 1.1.1g  21 Apr 2020

# openssl version                   <--确认系统自带版本正常
OpenSSL 1.0.1e-fips 11 Feb 2013

三、编译安装openssh

3.1、查看、备份并卸载当前版本的ssh

  在卸载现有版本前复制(克隆)当前会话,确保当前的ssh会话不断开。

# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

# rpm -qa | grep openssh
openssh-server-5.3p1-94.el6.x86_64
openssh-clients-5.3p1-94.el6.x86_64
openssh-5.3p1-94.el6.x86_64

备份原版本ssh配置
# cp -rf /etc/ssh /etc/ssh_bak

# rpm -e --nodeps `rpm -qa | grep openssh`
warning: /etc/ssh/sshd_config saved as /etc/ssh/sshd_config.rpmsave

# rpm -qa | grep openssh

验证基础工具正常使用,执行命令无报错即可
# curl -V
# wget -V
# yum --version

3.2、编译安装openssh

  下载地址:https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz

# tar zvxf openssh-8.4p1.tar.gz
# cd openssh-8.4p1
# ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh  --with-ssl-dir=/usr/local/openssl
# make -j 4 && make install          <--可根据cpu核心数确定make -j的参数

复制命令文件
# cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
# cp /usr/local/openssh/bin/ssh /usr/bin/ssh
# cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

复制启动管理文件,确保在解压的openssh-8.4p1编译目录下执行
# cp contrib/redhat/sshd.init /etc/init.d/sshd

3.3、修改编译后的配置文件

# vim /etc/ssh/sshd_config
Port 20022                  <--修改ssh使用的端口
PermitRootLogin yes         <--允许root登录
PasswordAuthentication yes  <--密码验证

在文件末尾加入如下内容:
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1

3.4、添加开机启动并启动编译的openssh

  在启动前请确保当前的ssh会话不断开。一定要注意的是不使用restart的选项启动而是直接start启动sshd服务。

启动编译后的ssh 8.4的服务,使用start参数启动,一定不要使用restart启动。
# /etc/init.d/sshd start
Starting sshd:                                             [确定]

服务启动后检查配置的端口正常
# netstat -tpln | grep ssh
tcp        0      0 0.0.0.0:20022               0.0.0.0:*                   LISTEN      14821/sshd

# chkconfig --list | grep sshd      <--查询当前系统无sshd的开机启动
# chkconfig sshd on                 <--加入开机启动
# chkconfig --list | grep sshd      <--确认开机启动加入正常
sshd            0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

3.5、验证升级

3.5.1、使用ssh远程工具重新连接

  保持现有的会话不关闭,使用远程工具重新开启一个会话连接服务器,确认可正常连接至服务器。

3.5.2、检查升级后的版本

# ssh -V
OpenSSH_8.4p1, OpenSSL 1.1.1g  21 Apr 2020

  至此openssh-8.4p1升级成功,使用正常。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: