手动升级OpenSSH到最新版本

前几天公司的服务器安全扫描,发现低版本的OpenSSH存在安全漏洞,我们使用的是CentOS镜像,现在大部分的系统上默认的OpenSSH版本是7.4,需要升级到最新的版本。最新版本目前是OpenSSH-8.1p1

查看当前ssh版本

1
2
> ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

下载OpenSSH

1
2
> cd /opt
> wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz

查找sshd.pid路径

这个路径在升级成功后修改/etc/init.d/sshd这个文件会用到。

1
2
> find / -name sshd.pid
/var/run/sshd.pid

解压OpenSSH

1
2
> tar -zxvf openssh-8.1p1.tar.gz
> cd openssh-8.1p1

卸载旧版本

现在开始,以下操作的命令都要在刚解压好的文件夹openssh-8.1p1中执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
> rpm -e `rpm -qa |grep openssh` --nodeps 	# 忽略依赖进行移除
warning: /etc/ssh/sshd_config saved as /etc/ssh/sshd_config.rpmsave

> yum -y install openssl-devel

# 编译最新版本的OpenSSH
> ./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-ssl --with-md5-passwords mandir=/usr/share/man/
> make && make install # 安装

> rm -f /etc/ssh/ssh_host_* # 删除旧版本相关文件

# 复制新编译好的新文件到指定位置
> cp contrib/redhat/sshd.init /etc/init.d/sshd && chmod 755 /etc/init.d/sshd

# 修改sshd.pid路径,这个路径在一开始时查找的(/var/run/sshd.pid)
> vim /etc/init.d/sshd

SSHD=/usr/sbin/sshd
PID_FILE=/var/run/sshd.pid

> /etc/init.d/sshd stop # 停止ssh
Reloading systemd: [ OK ]
Stopping sshd (via systemctl): [ OK ]
> /etc/init.d/sshd start # 启动ssh
Starting sshd (via systemctl): [ OK ]

> chkconfig --add sshd &&chkconfig sshd on # 配置开机启动

# 修改sshd配置文件,并重启
> sed 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' -i /etc/ssh/sshd_config
> sed 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' -i /etc/ssh/sshd_config

# 重启ssh服务
> service sshd restart

> ssh -V # 查看刚安装的版本
OpenSSH_8.1p1, OpenSSL 1.0.2k-fips 26 Jan 2017

好了,现在OpenSSH已经升级到最新的版本

原文作者: dgb8901,yinxing

原文链接: https://www.itwork.club/2020/01/20/update-ssh-latest/

版权声明: 转载请注明出处

为您推荐

体验小程序「简易记账」

关注公众号「特想学英语」

在CentOS上安装Docker CE