侧边栏壁纸
博主头像
hotben

2008年涉足通信行业,致力于无线通信智能化。

  • 累计撰写 14 篇文章
  • 累计创建 5 个标签
  • 累计收到 1 条评论
标签搜索

如何离线升级openssh和openssl

hotben
2021-11-20 / 0 评论 / 0 点赞 / 595 阅读 / 2,329 字
温馨提示:
如果本文对您有帮助,请点赞或评论让我们知道!部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

如何离线升级openssh和openssl

1、环境检查

image-20211120235204382

先确保你的服务器上已经有gcc,gcc-c++。这两个是编译工具。

rpm -qa |grep gcc

image-20211120235224223

缺少

image-20211120235252329

正常应该是这样

缺少则安装gcc等编译环境

#把相关的rpm包全部放到gcc文件夹
#进入gcc文件夹,忽略依赖安装
rpm -Uvh --force --nodeps *.rpm

image-20211120235530863

2、编译安装openssl

下载最新版:https://mirrors.cloud.tencent.com/openssl/source/

image-20211120235556490

#备份旧版
mv /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.2k_bak 
mv /usr/lib64/libssl.so.1.0.2k /usr/lib64/libssl.so.1.0.2k_bak 
#解压
tar -zxvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
#添加openssl配置
./config --prefix=/usr/local/openssl
#编译
make
#卸载旧版本
for  i  in  $(rpm  -qa |grep  openssl);do  rpm  -e  $i --nodeps  ;done
#安装
make install
#配置相关软链
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig
cp /usr/local/openssl/lib/libssl.so.1.1 /lib64/libssl.so.1.1
cp -f /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
cp /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64
ln -sf /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.10
ln -sf /usr/lib64/libcrypto.so.1.1 /lib64/libcrypto.so.10
ln -sf /usr/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so
ln -sf /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so.10
ln -sf /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/openssl/include/openssl /usr/include/openssl
openssl version -a
#修改1.0版软链
mv /usr/lib64/libcrypto.so.1.0.2k_bak /usr/lib64/libcrypto.so.1.0.2k
ln -fs /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.10
mv /usr/lib64/libssl.so.1.0.2k_bak /usr/lib64/libssl.so.1.0.2k
ln -sf /usr/lib64/libssl.so.1.0.2k /usr/lib64/libssl.so.10

3、编译安装openssh

下载最新版:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

image-20211120235616921

#进入openssh文件夹,并配置
./configure --prefix=/usr --sysconfdir=/etc/ssh  --with-ssl-dir=/usr/local/openssl
#执行make
make

#卸载 旧版本的openssh
for  i  in  $(rpm  -qa  |grep  openssh);do  rpm  -e  $i  --nodeps ;done

#安装新版本openssh
sudo make install

#查看新版的本号
ssh -V

// 在使用ssh登陆试试
sudo cp contrib/redhat/sshd.init /etc/init.d/sshd

#加入开机启动
sudo chkconfig --add sshd
sudo  chkconfig sshd on

# 修改配置 PermitRootLogin yes
sudo vim /etc/ssh/sshd_config

echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

// 重启服务
sudo service sshd restart

image-20211120235714131

chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

4、升级后的问题

1)无法登陆ssh
临时关闭 setenforce 0 
#设置SELinux 成为permissive模式 setenforce 1 设置SELinux 成为enforcing模式 修改配置文件需要重启服务器 修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled
2)docker网络异常

重启docker服务

systemctl restart docker
3)Sftp账号异常

因为/etc/ssh/sshd_config文件更新后为全新文件,相关的配置也会被修改。需按照升级前的配置修改。

0

评论区