使用 CentOS 系统升级 OpenSSLOpenSSH 服务
Posted 愿许浪尽天涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 CentOS 系统升级 OpenSSLOpenSSH 服务相关的知识,希望对你有一定的参考价值。
一、升级 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
以上是关于使用 CentOS 系统升级 OpenSSLOpenSSH 服务的主要内容,如果未能解决你的问题,请参考以下文章