Linux系统上OpenSSH最简单升级的方法

2025-10-11 21:47:24

1、升级OpenSSH前,最好开启系统上的Telnet服务,通过Telnet连接系统进行升级操作。以防OpenSSH升级出现问题而连接不上系统。

参考:CentOS6/CentOS7上启用Telnet服务

2、备份/etc/ssh目录

# cp -rp /etc/ssh /etc/ssh.bak

3、必要软件的安装

# yum install gcc zlib zlib-devel openssl-devel

4、查看当前OpenSSH版本

# ssh -V

OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

5、可以看到,当前版本是OpenSSH 6.6.1p1版本。我们把它升级到OpenSSH 8.0p1版本。

6、下载OpenSSH新版本

打开https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/网站

选择openssh-8.0p1.tar.gz进行下载

#curl -O https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz

Linux系统上OpenSSH最简单升级的方法

Linux系统上OpenSSH最简单升级的方法

7、安装openssh-8.0p1

# tar -zxvf openssh-8.0p1.tar.gz

# cd openssh-8.0p1

# ./configure

这步要注意,如果报错,就需要先解决报错的问题才能进行下一步。

只要最后出现如图的类似内容,才说明没问题,可以进行下一步编译了。

Linux系统上OpenSSH最简单升级的方法

8、上一步正常执行后,开始编译安装。

# make

# make install

Linux系统上OpenSSH最简单升级的方法

9、如果没报错的话,说明升级成功了。

执行ssh -V就能看到OpenSSH的客户端升级成功了。

# ssh -V

OpenSSH_8.0p1, OpenSSL 1.0.2k-fips  26 Jan 2017

10、上面只能说明OpenSSH的客户端开始使用新版本了,但openssh-server服务端还是在用旧版的。

所以我们还需要修改一下ssh的服务文件,让它开始使用新的版本。

11、如果前面./configure没指定位置的话,编译后新的sshd服务文件默认是/usr/local/sbin/sshd

我们需要修改sshd的服务文件,指向这个新的sshd文件。

CentOS6和CentOS7系统修改方法不一样。

12、CentOS6系统:

#vim /etc/rc.d/init.d/sshd

SSHD=/usr/local/sbin/sshd

启用新的sshd后,由于新版本的OpenSSH默认不允许root用户登录,如果需要使用root远程登录,还需要做一下设置。如果不需要,可以直接重启服务。

新的OpenSSH的配置文件是在/usr/local/etc/这个目录下,编辑/usr/local/etc/sshd_config:

# vim /usr/local/etc/sshd_config

PermitRootLogin yes

重启服务

#service sshd restart

13、CentOS7系统:

禁用原先的SSH服务,并移除服务文件

# systemctl disable sshd

# mv /usr/lib/systemd/system/sshd.service /sshd.service

在OpenSSH_8.0p1源码包中,把一些服务文件复制到系统中:

# cp contrib/redhat/sshd.init /etc/init.d/sshd

# cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam

#  chmod +x /etc/init.d/sshd

修改/etc/init.d/sshd中的SSHD路径:

# vim /etc/init.d/sshd

SSHD=/usr/local/sbin/sshd

启用新的sshd后,由于新版本的OpenSSH默认不允许root用户登录,如果需要使用root远程登录,还需要做一下设置。如果不需要,可以直接重启服务。

新的OpenSSH的配置文件是在/usr/local/etc/这个目录下,编辑/usr/local/etc/sshd_config:

# vim /usr/local/etc/sshd_config

PermitRootLogin yes

重启服务:

# systemctl daemon-reload

# systemctl restart sshd

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢