Linux-OpenSSH-Update

OpenSSH 版本升级

环境版本

Redhat 6.9 server

注意事项:以防操作错误,先将 VNC 服务开启保证能够连接服务器。

!!! 一定要注意 VNC 能够正常访问 并且能够打开 终端窗口 !!!

以 Root 用户上传升级包至 /root

openssh-8.3p1.tar.gz 
openssl-1.1.1g.tar.gz
zlib-1.2.11.tar.gz

以上安装包分别在

https://www.openssh.com/  (官网可能不太好找,这边列出了官网给出的下载地址)
https://www.openssh.com/portable.html
https://www.openssl.org 
http://www.zlib.net/

安装依赖包.

yum -y install gcc pam-devel zlib-devel

安装zlib

1 解压包

cd /root
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/

备份 libz 的库文件(不同操作系统的库文件不同,我这边是 libz.so.1.2.3)

cp /lib64/libz.so.1.2.3   /lib64/libz.so.1.2.3.old

2 编译

./configure --prefix=/usr
make           (切记要在卸载 zlib 之前 make)

3 卸载当前 zlib

rpm -e --nodeps zlib

4 安装之前编译的

make install

5 共享库注册

echo '/usr/lib' >> /etc/ld.so.conf
ldconfig

注:若上述操作没有先编译后卸载 zlib,那么就可以利用之前备份的库文件将其还原。

cp  /lib64/libz.so.1.2.3.old  /lib64/libz.so.1.2.3
ln -s /usr/lib/libz.so.1.2.3 /usr/lib/libz.so.1

安装 openssl

1 备份当前 openssl

mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/lib64/openssl /usr/lib64/openssl.old

备份库文件

cp  /usr/lib64/libcrypto.so.10  /usr/lib64/libcrypto.so.10.old
cp  /usr/lib64/libssl.so.10  /usr/lib64/libssl.so.10.old

2 卸载当前 openssl

rpm -qa |grep openssl|xargs -i rpm -e --nodeps {}   

(报错信息可忽略,因为目录我们已经改名字了)

3 解压 openssl-1.1.1g.tar.gz

cd ../
tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g/
./config --prefix=/usr --openssldir=/etc/ssl --shared zlib
make
make test
make install
openssl version -a  (查看版本)

4 恢复共享库

mv  /usr/lib64/libcrypto.so.10.old  /usr/lib64/libcrypto.so.10
mv  /usr/lib64/libssl.so.10.old  /usr/lib64/libssl.so.10

安装 openssh

1 备份当前openssh

mv /etc/ssh /etc/ssh.old

2 卸载当前 openssh

rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}

3 安装前环境配置

install  -v -m700 -d /var/lib/sshd
chown  -v root:sys /var/lib/sshd

4 解压 openssh-8.3p1.tar.gz 源码并编译安装

cd ../
tar -zxvf  openssh-8.3p1.tar.gz
cd openssh-8.3p1/
./configure --prefix=/usr  --sysconfdir=/etc/ssh  --with-md5-passwords  --with-pam  --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd
make
make install

5 openssh 安装后环境配置

在 openssh 编译目录执行如下命令

install -v -m755    contrib/ssh-copy-id /usr/bin
install -v -m644    contrib/ssh-copy-id.1 /usr/share/man/man1
install -v -m755 -d /usr/share/doc/openssh-8.3p1
install -v -m644    INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-8.3p1
ssh -V              #验证是否升级成功

启用 OpenSSH 服务、并添加自启

echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
/sbin/chkconfig --add  sshd
/sbin/chkconfig sshd on

重启 sshd 服务

注意:如果你是 ssh 连接的远程服务器,那么 sshd 重启会失败,建议使用 VNC 去连接服务器去操作重启 sshd。

service sshd stop
service sshd start

其他

如果安装后启动失败,那么可以使用以下命令进行恢复。
这边要注意一下 openssh 的服务端程序包是 openssh-server。

rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}
yum install openssh-server
Contents
  1. 1. OpenSSH 版本升级
    1. 1.1. 环境版本
    2. 1.2. 安装依赖包.
    3. 1.3. 安装zlib
      1. 1.3.1. 1 解压包
      2. 1.3.2. 2 编译
      3. 1.3.3. 3 卸载当前 zlib
      4. 1.3.4. 4 安装之前编译的
      5. 1.3.5. 5 共享库注册
    4. 1.4. 安装 openssl
      1. 1.4.1. 1 备份当前 openssl
      2. 1.4.2. 2 卸载当前 openssl
      3. 1.4.3. 3 解压 openssl-1.1.1g.tar.gz
      4. 1.4.4. 4 恢复共享库
    5. 1.5. 安装 openssh
      1. 1.5.1. 1 备份当前openssh
      2. 1.5.2. 2 卸载当前 openssh
      3. 1.5.3. 3 安装前环境配置
      4. 1.5.4. 4 解压 openssh-8.3p1.tar.gz 源码并编译安装
      5. 1.5.5. 5 openssh 安装后环境配置
    6. 1.6. 启用 OpenSSH 服务、并添加自启
    7. 1.7. 重启 sshd 服务
    8. 1.8. 其他
|