Linux系统 常用远程登录来管理运维机器。远程登录中最重要的服务就是ssh服务,一般低版本的ssh 可能会存在漏洞,导致非法黑客入侵提权,增加系统的不安全。因此要确保ssh 版本是修复漏洞后的稳定版本。
1. 首先查看系统的ssh版本信息
命令:ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1c FIPS 28 May 2019
这个版本不算太老,不过也建议升级到新版本的。
2. 可以先在测试环境进行,以防生产环境出现问题升级失败导致无法连接到主机就麻烦了。
升级准备工作:
先升级ssl模块,在官网下载ssl版本和依赖的文件:
#升级所需安装包源码包:
openssh-8.1p1.tar.gz
zlib-1.2.1.tar.gz
openssl-1.1.1h.tar.gz
# 安装包链接地址(可以先线下下载然后上传至服务器)
http://www.zlib.net/zlib-1.2.11.tar.gz
https://www.openssl.org/source/openssl-1.1.1g.tar.gz
http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
#备份之前版本的安装环境
sudo cp -r /etc/ssh /etc/ssh_bak
sudo cp /etc/init.d/sshd /etc/init.d/sshd_bak
sudo cp /usr/sbin/sshd /usr/sbin/sshd_bak
# 安装所需要的依赖
yum install perl gcc gcc-c++ pam-devel zlib zlib-devel -y
3. 解压编译安装
./config zlib-dynamic shared
make && make install
4. 更新链接库路径
编辑/etc/ld.so.conf,添加/usr/local/lib64
5. 执行ldconfig -v使配置生效
6.编译openssh
安装依赖包 yum install pam pam-devel
解压openssh 文件包
./configure --prefix=/usr --with-ssl-dir=/usr/local/lib64 --with-pam
make && make install
chmod 400 /etc/ssh/ssh_host_*
编辑/etc/ssh/sshd_config注释两个GSSAPI选项
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
编辑/etc/ssh/sshd_config,在文件最后添加如下选项:
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256
cp openssh-8.1p1/contrib/redhat/sshd.init /etc/init.d/sshd
rm /usr/lib/systemd/system/sshd.service
编辑/etc/init.d/sshd添加OPTIONS选项
OPTIONS="-f /etc/ssh/sshd_config "
启动sshd服务
systemctl daemon-reload | systemctl start ssdh
查看服务的状态
systemctl status sshd