文章目录
openssh升级,以升级到7.9为例
1. 安装准备
1.1 安装telnet
安装原因:卸载ssh后使用telnet远程登录
文档见 连接: >>> 安装telnet
1.2 关闭防火墙和selinux
- 关闭selinux
(略) - 关闭防火墙
(略)
1.3 下载升级包
-
openssh 9.3p2下载:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ -
openssl 1.1.1w下载
https://www.openssl.org/source/old/1.0.2/index.html -
也可以下载我打好包的:openssh-9.3p2升级包
包含:openssh-9.3p2、openssl-1.0.2o.tar.gz、zlib-1.2.11.tar.gz
1.4 安装依赖
yum -y install gcc make perl zlib zlib-devel pam pam-devel
2 安装服务
以下使用telnet连接服务器后操作
telnet 10.x.x.x 23
2.1 删除旧版openssh
- 关闭openssh并备份
systemctl stop sshd
cp -r /etc/ssh /etc/ssh.old
- 查看旧版openssh服务
rpm -qa | grep openssh
显示如下:
openssh-server-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
- 删除服务
把上边三个服务都删除
rpm -e --nodeps openssh-server-7.4p1-21.el7.x86_64
rpm -e --nodeps openssh-clients-7.4p1-21.el7.x86_64
rpm -e --nodeps openssh-7.4p1-21.el7.x86_64
2.2 编译安装zlib
- 安装
tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install
验证
- 加入库
# vi /etc/ld.so.conf.d/zlib.conf
/usr/local/zlib/lib
- 刷新库
# ldconfig -v
2.3 编译安装openssl
- 编译
tar -xzvf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
./config shared zlib
make
make test
make install
- 连接到新版本
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openss
- 加入库
# vi /etc/ld.so.conf.d/ssl.conf
/usr/local/ssl/lib
- 刷新库文件
ldconfig -v
2.4 升级openssh
- 安装
tar -zxvf openssh-9.3p2.tar.gz
cd openssh-9.3p2
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
make
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
make install
- 允许root登录
echo "PasswordAuthentication 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
chkconfig --add sshd
chkconfig sshd on
systemctl restart sshd
- 验证
ssh -V
3. 其他操作(非必要)
3.1 ssh 安装失败回滚
- 删除已安装文件
按前文“2.1 删除旧版openssh”操作 - yum重新安装旧版
拷贝回原来的版本或者直接再yum一个都可以:
yum -y install openssh-clients
yum -y install openssh-server
yum -y install openssh
zlib 不用回滚
3.2 禁止root远程登录
# vim /etc/ssh/sshd_configs
PermitRootLogin no
# systemctl sshd restart