使用 CentOS 系统升级 OpenSSL、OpenSSH 服务

一、升级 OpenSSL 服务

1)下载 OpenSSL 软件包

[root@k8s-master01 ~]# wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1p.tar.gz --no-check-certificate
[root@k8s-master01 ~]# tar xf openssl-1.1.1p.tar.gz

2)安装 OpenSSL 服务

[root@k8s-master01 ~]# yum -y install zlib zlib-devel gcc perl pam-devel
[root@k8s-master01 ~]# cd openssl-1.1.1p
[root@k8s-master01 openssh-9.0p1]# ./config --prefix=/usr/local/openssl shared
[root@k8s-master01 openssh-9.0p1]# make && make install
  • shared:用于生成动态链接库;

3)备份旧 OpenSSL

[root@k8s-master01 ~]# mv /usr/bin/openssl /usr/bin/openssl-$(date +%F)
[root@k8s-master01 ~]# mv /usr/lib64/openssl /usr/lib64/openssl-$(date +%F)

4)配置新 OpenSSL 路径

[root@k8s-master01 ~]# ln -s /usr/local/openssl/bin/openssl /usr/bin/
[root@k8s-master01 ~]# ln -s /usr/local/openssl/include/openssl /usr/lib64/

5)配置库文件搜索路径

[root@k8s-master01 ~]# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
[root@k8s-master01 ~]# ldconfig

6)验证

[root@k8s-master01 ~]# openssl version
OpenSSL 1.1.1p  21 Jun 2022

二、升级 OpenSSH 服务

1)下载 OpenSSH 软件包

[root@k8s-master01 ~]# wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
[root@k8s-master01 ~]# tar xf openssh-9.0p1.tar.gz

2)备份旧 OpenSSH 目录,并卸载

[root@k8s-master01 ~]# mv /etc/ssh /etc/ssh-$(date +%F)
[root@k8s-master01 ~]# cp /etc/pam.d/system-auth /etc/pam.d/system-auth-$(date +%F)
[root@k8s-master01 ~]# cp /etc/pam.d/sshd /etc/pam.d/sshd-$(date +%F)
[root@k8s-master01 ~]# yum -y erase openssh

3)安装 OpenSSH

[root@k8s-master01 ~]# cd openssh-9.0p1
[root@k8s-master01 openssh-9.0p1]# ./configure --prefix=/usr \
--sysconfdir=/etc/ssh \
--with-md5-passwords \
--with-pam \
--with-zlib \
--with-ssl-dir=/usr/local/openssl \
--without-hardening
[root@k8s-master01 openssh-9.0p1]# make && make install
[root@k8s-master01 openssh-9.0p1]# cp contrib/redhat/sshd.init /etc/init.d/sshd
[root@k8s-master01 openssh-9.0p1]# chkconfig --add sshd
[root@k8s-master01 openssh-9.0p1]# chkconfig sshd on
[root@k8s-master01 openssh-9.0p1]# systemctl restart sshd

4)验证

[root@k8s-master01 ~]# ssh -Version
OpenSSH_9.0p1, OpenSSL 1.1.1p  21 Jun 2022

修改 OpenSSH 配置文件

[root@k8s-master01 ~]# sed -i '/PasswordAuthentication/s/^#//' /etc/ssh/sshd_config
[root@k8s-master01 ~]# sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
[root@k8s-master01 ~]# systemctl restart sshd
  • PasswordAuthentication:允许通过密码远程登录;
  • PermitRootLogin:允许 root 用户远程登录;

在这里插入图片描述

可以看到,上面图中,我们在远程验证时,输出:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 信息。原因是因为我这里 使用过旧版本的 SSH 远程到目标主机过,远程时,SSH 便会将远程主机的 public key 记录到 known_hosts 文件中。


当再进行远程时,SSH 将会根据 known_hosts 文件来验证远程主机的公钥(如果不匹配,SSH 就会输出警告信息)。而我们上面刚好在远程主机上升级过 SSH,所以便导致 public key 发生改变。不过,我们只需要将 known_hosts 文件删除,重新远程即可。

[root@k8s-master01 ~]# rm -rf ~/.ssh/known_hosts 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46902396/article/details/124766210