centos7升级最新版openssh&&openssl

养成备份的好习惯。做任何操作前,尤其是对文件进行操作,需要对其进行备份。

一、查看版本

**操作系统版本:**

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

**Openssh&&Openssl版本:**

[root@localhost ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

二、准备工作

安装Telnet服务,防止升级失败不能远程连接服务器,查看telnet server是否安装:  rpm -qa | grep telnet

[root@localhost ~]# rpm -qa | grep telnet
安装telnet
[root@localhost ~]#yum install xinetd telnet-server -y

备份文件securetty:cp /etc/securetty /etc/securetty.bak,配置telnet登录的终端类型,增加一些pts终端:

cat >> /etc/securetty <<EOF
pts/0
pts/1
pts/2
pts/3
EOF
或者
在这里插入图片描述

启动telnet服务,并设置开机自动启动

systemctl enable xinetd
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
netstat -tnl |grep 23
在这里插入图片描述

外部主机与虚拟机的端口不通,说明虚拟机的防火墙未放行,使用命令放行23端口。

firewall-cmd --zone=public --add-port=23/tcp --permanent(永久放行)
firewall-cmd --reload(重新加载配置)
在这里插入图片描述

此时外部主机可以ping通虚拟机的23端口,说明Telnet服务正常,我们可以使用Telnet远程管理虚拟机了。 

在这里插入图片描述

备份并移除老文件 ( 这些配置可能影响装完以后的登陆 所以备份)

mkdir /root/update
cd /root/update
cp /etc/ssh/sshd_config sshd_config
cp /etc/pam.d/sshd sshd
yum remove -y openssl-devel
rm -rf /etc/ssl

最后安装相关依赖:yum install  -y gcc gcc-c++ glibc make autoconf pcre-devel  pam-devel rpm-build pam* zlib*

三、升级openssl

备份

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

如下两个库文件必须先备份,因系统内部分工具(如yum、wget等)依赖此库,而新版OpenSSL不包含这两个库

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

卸载:查找openssl包:rpm -qa | grep openssl 根据包名卸载:rpm -e --nodeps openssl-1.0.1e-42.el6.x86_64。
卸载全部相关的openssl包(rpm -qa |grep openssl|xargs -i rpm -e --nodeps {})

在这里插入图片描述

安装:官网下载openssl最新包。wget --no-check-certificate https://ftp.openssl.org/source/openssl-1.1.1t.tar.gz /root

在这里插入图片描述

解压:tar-zxvf /root/openssl-1.1.1t.tar.gz 
cd /openssl-1.1.1t目录后编
./config --prefix=/usr --openssldir=/etc/ssl --shared zlib #必须加上--shared,否则编译时会找不到新安装的openssl的库而报错
编译:make clean(删除之前的可执行文件)
make && make install(编译并安装)
echo $?(判断编译是否成功,0表示成功)
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
echo "/usr/local/lib" >> /etc/ld.so.conf
echo "/usr/local/lib64" >> /etc/ld.so.conf
/sbin/ldconfig
openssl version

[root@localhost openssl-1.1.1t]# openssl version
OpenSSL 1.1.1t 7 Feb 2023

升级成功。

恢复共享库:由于OpenSSL_1.0.2k不提供libcrypto.so.10和libssl.so.10这两个库,而yum、wget等工具又依赖此库,因此需要将先前备份的这两个库进行恢复,其他的可视情况考虑是否恢复。

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

备份: mv /etc/ssh /etc/ssh.old
卸载当前openssh :rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}

下载openssh:
wget --no-check-certificate https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz /root
解压tar -zxvf openssh-9.3.tar.gz,进入ssh目录
编译:./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam
make clean
make && make install
echo $?
cp -af contrib/redhat/sshd.init /etc/init.d/sshd
cp -af contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd

编辑配置文件:
cat >> /etc/ssh/sshd_config <<EOF
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
PermitRootLogin yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
EOF

chkconfig --add sshd 添加服务
mv /usr/lib/systemd/system/sshd.service /root/update/sshd.service
chkconfig sshd on
systemctl enable sshd
systemctl start sshd

升级完成,查看升级后的版本。
在这里插入图片描述

测试:
在这里插入图片描述

1、升级成功后如果使用xshell连接提示服务器拒绝连接,则安装openssh-server
[root@localhost ]# yum -y install openssh-server 
(local@localhost ~)# chmod 600 /etc/ssh/ssh_host_rsa_key
(local@localhost ~)# chmod 600 /etc/ssh/ssh_host_ecdsa_key

在这里插入图片描述

2、修改配置vim /etc/ssh/sshd_config,找一个正常ssh的服务器。
3、防火墙开通22端口,允许外部访问。
4、安装过程有什么错误使用sshd -t查看错误日志。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7上升级安装OpenSSH 9.1可以按照以下步骤进行: 1. 首先,确保系统已经安装了EPEL存储库。如果未安装,请运行以下命令安装: ``` sudo yum install epel-release ``` 2. 然后,更新系统软件包到最新版本: ``` sudo yum update ``` 3. 安装OpenSSH 9.1的依赖软件包: ``` sudo yum install gcc make wget perl-devel pam-devel zlib-devel krb5-devel openssl-devel ``` 4. 下载OpenSSH 9.1的源代码包,可以在OpenSSH官方网站上获取最新的源代码包: ``` wget http://www.openssh.com/portable/openssh-9.1p1.tar.gz ``` 5. 解压源代码包: ``` tar -zxvf openssh-9.1p1.tar.gz cd openssh-9.1p1 ``` 6. 配置编译选项: ``` ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/empty/sshd ``` 7. 编译并安装: ``` make sudo make install ``` 8. 备份并替换系统原有的OpenSSH二进制文件: ``` sudo cp /usr/sbin/sshd /usr/sbin/sshd_backup sudo cp /usr/bin/ssh /usr/bin/ssh_backup sudo cp /usr/bin/ssh-keygen /usr/bin/ssh-keygen_backup sudo cp /usr/libexec/openssh/sftp-server /usr/libexec/openssh/sftp-server_backup sudo cp /usr/libexec/openssh/sftp-server /usr/libexec/openssh/sftp-server_backup sudo cp /usr/libexec/openssh/sftp-server /usr/libexec/openssh/sftp-server_backup sudo cp /usr/libexec/openssh/ssh-keysign /usr/libexec/openssh/ssh-keysign_backup sudo cp /usr/libexec/openssh/ssh-keyscan /usr/libexec/openssh/ssh-keyscan_backup sudo cp /usr/libexec/openssh/ssh-keyscan /usr/libexec/openssh/ssh-keyscan_backup ``` 9. 启动OpenSSH服务: ``` sudo systemctl start sshd ``` 到此,您已成功将OpenSSH升级到9.1版本。您可以使用以下命令验证OpenSSH版本: ``` ssh -V ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值