一、什么是 OpenSSH?
OpenSSH 是一套应用于 Unix 和 Linux 操作系统的免费、开放源码的安全连接工具,可以为远程登录提供加密通道,是 Linux 系统中常用的工具。
二、为什么要升级 OpenSSH?
OpenSSH 经常会受到攻击,而且旧版本有各种漏洞,因此及时升级 OpenSSH 可以增强系统的安全性。
三、升级 OpenSSH 的步骤
1. 确认 OpenSSH 版本
使用命令 ssh -V 可以查看系统当前的 OpenSSH 版本。
[root@centos7 ~]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
2. 下载 OpenSSH 新版本
从官方网站 https://www.openssh.com/ 下载最新版本的 OpenSSH。
[root@centos7 ~]# wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz
3. 解压 OpenSSH 文件
使用 tar 命令将下载下来的文件解压到指定目录。
[root@centos7 ~]# tar zxvf openssh-8.3p1.tar.gz && cd openssh-8.3p1
4. 编译安装 OpenSSH 新版本
进入 openssh 文件夹,执行以下命令,进行编译安装 OpenSSH。
[root@centos7 openssh-8.3p1]# ./configure && make && make install
5. 备份配置文件
在升级前备份当前的 sshd_config 文件。
[root@centos7 ~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
6. 修改配置文件
用文本编辑器打开 sshd_config 文件,将以下配置信息加入到文件的末尾。
Ciphers aes256-cbc,aes192-cbc,aes128-cbc MACs hmac-sha1,umac-64@openssh.com,hmac-ripemd160 UsePrivilegeSeparation sandbox KexAlgorithms diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512 Subsystem sftp /usr/libexec/openssh/sftp-server PermitRootLogin no AllowUsers user1 user2
7. 重启 sshd 服务
执行以下命令,重启 sshd 服务。
[root@centos7 ~]# systemctl restart sshd
四、常见问题
1. 编译时出现错误
在编译时,可能出现一些错误,这些错误一般是由于缺少依赖包导致的。可以使用以下命令来安装依赖包。
[root@centos7 ~]# yum install -y zlib-devel openssl-devel pam-devel
2. 升级后无法登录
升级后如果无法登录,很可能是之前的配置文件的设置与新版本的 OpenSSH 发生了冲突。可以对比备份的 sshd_config 文件和新版本中的 sshd_config 文件,修改配置文件中的相应选项。
3. 升级后启动服务失败
如果升级后无法启动服务,可以先查看服务日志,找到具体的错误信息,然后根据错误信息进行调整。
[root@centos7 ~]# journalctl -xe
五、总结
通过升级 OpenSSH 可以增强 Centos7 的安全性,需要注意备份配置文件和依赖包的安装。