OpenSSH是SSH协议的免费开源实现,经常会曝出安全漏洞,由于CentOS7自带的OpenSSH版本(OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017)太低,有必要进行新服务器的OpenSSH版本升级。升级OpenSSH升级前首先需要升级OpenSSL。
本升级教程仅针对CentOS7
预处理防止升级过程中连接中断
1、 安装telnet服务
yum -y install telnet-server
2、 启动telnet
systemctl start telnet.socket
3、 防火墙开放tcp/23端口
firewall-cmd --permanent --add-port=23/tcp
firewall-cmd --reload
4、 默认情况下,linux不允许root用户以telnet方式登录,移除securetty文件
mv /etc/securetty{,.bak}
5、关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
6、 使用windows连接linux
命令行使用telnet [服务器IP]
#由于telnet是明文传输,不安全,所以升级完成后,必须停止该服务
同时打开两个ssh窗口,并在其中的一个窗口中运行top命令,防止升级过程中会话中断无法连接服务器
1、 停掉sshd服务
systemctl stop sshd
2、 卸载所有openssh服务
yum -y remove openssh
3、 安装相关依赖
yum -y install pam pam-devel zlib zlib-devel
4、 备份原ssh配置
mv /etc/ssh /etc/ssh.bak
安装最新的OpenSSL(1.1.1g)
1、 下载
cd /opt
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz --no-check-certificat
2、 安装
tar -xzvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config --prefix=/usr/ --openssldir=/usr/shared
make && make install
3、 查看openssl版本
openssl version
安装最新的OpenSSH(9.0p1)
1、 下载
cd /opt/
wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
2、 安装
tar -zxvf openssh-9.0p1.tar.gz
cd openssh-9.0p1
./configure --with-zlib --with-ssl-dir --with-pam --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh
make && make install
cp contrib/redhat/sshd.init /etc/init.d/sshd
3、 查看ssh版本
ssh -V
修改配置文件,不限制root登录
1、 将sshd添加到系统服务
chkconfig --add sshd
2、 启动ssh
systemctl start sshd
3、 修改sshd配置文件
vim /etc/ssh/sshd_config
PermitRootLogin yes #允许root使用密码登录
PasswordAuthentication yes #允许使用密码登录
4、 重启sshd服务,新开窗口测试
systemctl restart sshd
5、给/var/run/sshd.pid授权
chmod 777 /var/run/sshd.pid
关闭telnet服务
systemctl stop telnet.socket