OpenSSH常见的安全漏洞,升级到 openssh-9.7p1可修复。
- 下载 openssh-9.7p1.tar.gz 和 openssl-1.1.1w.tar.gz 两个安装文件
openssh下载地址:Index of /pub/OpenBSD/OpenSSH/portable/
openssl下载地址:Releases · openssl/openssl · GitHub
- 将下载的文件上传到 /usr/local/,并解压到当前目录
- 查看当前ssh、ssl的版本
openssl version
openssh -V
4.安装相关依赖
#执行命令,安装相关依赖
yum -y install gcc pam-devel zlib-devel openssl-devel net-tools
- 安装ssl,进入ssl解压目录
#进入解压目录
cd /usr/local/openssl-1.1.1w/
6.创建安装目录
#创建目录
mkdir /opt/openssl
7.编译安装
#配置编译
./config --prefix=/opt/openssl
#构建程序
make
#安装编译
make install
以上步骤无误,继续下一步操作
8.更新lib文件
ldd /opt/openssl/bin/openssl
echo "/opt/openssl/lib" >> /etc/ld.so.conf
# 更新库
ldconfig -v
# 绝对路径查看openssl版本
ldd /opt/openssl/bin/openssl
如果报错找不到库
则更新缓存库
#更新缓存库
sudo ldconfig
#查看版本
openssl version
- 更新bin文件
# 查看旧版本的openssl命令路径
which openssl
# 重命名openssl
mv /bin/openssl /bin/openssl.old
# 使用软连接的方式更新openssl命令
ln -s /opt/openssl/bin/openssl /bin/openssl
# 查看版本
openssl version
以上openssl已更新完毕。继续下一步操作
- 升级openssh服务,需要另外用telnet连接,连接到服务器进行openssh升级,首先必须先安装telnet服务,才可以进行telnet链接
1)、安装telnet 服务
#安装telnet服务软件包
sudo yum install telnet-server
#启动
sudo systemctl start telnet.socket
#设置开机自启
sudo systemctl enable telnet.socket
#检查telnet状态
sudo systemctl status telnet.socket
![](https://img-blog.csdnimg.cn/direct/da9473b8d5ab4241a5f7754d0023fb24.png)
2)、配置端口:23
#开启telnet服务的端口:23。安全组也不要忘记配置
sudo firewall-cmd --zone=public --add-port=23/tcp --permanent
sudo firewall-cmd --reload
3)配置访问账号
#添加用户
sudo useradd newuser
#添加密码,newuser为用户名
sudo passwd newuser
#配置管理员权限
sudo usermod -aG wheel newuser
4)、用telnet进行连接,可以使用MobaXterm连接,也可以使用windows命令连接
windows命令行
telnet your__ip_address ==> telnet xxx.xx.xx.xx
- Telnet连接成功了,开始升级SSH服务。
1)、卸载openssh的rpm包
sudo bash -c 'for i in $(rpm -qa | grep openssh); do rpm -e $i --nodeps; done'
2)、进入解压缩文件目录
/usr/local/openssh-9.7p1/
3)、配置编译OpenSSH服务
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/opt/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening
4)、构建程序及安装
# 构建程序
make
# 安装编译
make install
如果make install 的过程中报错 Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored。 执行以下命令,再重新安装
#权限设置
sudo chmod 600 /etc/ssh/ssh_host_ed25519_key
#安装
make install
5)、复制并修改启动sshd.init脚本
sudo cp /usr/local/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/
sudo cat /etc/init.d/sshd.init | grep SSHD
sudo sed -i "s/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh\/sbin\/sshd/g" /etc/init.d/sshd.init
sudo cat /etc/init.d/sshd.init | grep SSHD
sudo cat -n /etc/init.d/sshd.init | grep ssh-keygen
sudo sed -i "s#/usr/bin/ssh-keygen -A#/usr/local/openssh/bin/ssh-keygen -A#g" /etc/init.d/sshd.init
sudo cat -n /etc/init.d/sshd.init | grep ssh-keygen
执行结果
![](https://img-blog.csdnimg.cn/direct/52423d1204da4961b1986f7e3c94b434.png)
6)、修改配置文件(sshd_config)
# 开启允许X11转发
echo 'X11Forwarding yes' | sudo tee -a /etc/ssh/sshd_config
# 开启允许密码验证
echo "PasswordAuthentication yes" | sudo tee -a /etc/ssh/sshd_config
# 开启root登录认证, 如果未启动root登录认证,root会报错无法登录
echo 'PermitRootLogin yes' | sudo tee -a /etc/ssh/sshd_config
7)、启动OpenSSH
sudo cp -arp /usr/local/openssh/bin/* /usr/bin/
sudo /etc/init.d/sshd.init status --查看状态
sudo /etc/init.d/sshd.init start -- 启动openssh服务,否则无法通过ssh连接服务
#start|stop|restart|reload|condrestart|status 根据需要跟不同的参数
#sudo /etc/init.d/sshd.init {start|stop|restart|reload|condrestart|status}
#查看安装版本
ssh –V
sudo chmod +x /etc/rc.d/rc.local
sudo sh -c 'echo "/etc/init.d/sshd.init start" >> /etc/rc.d/rc.local'
8)、查看OpenSSH运行状态
9)、使用ssh协议连接centos7,检查openssh服务
也可用telnet验证:ssh username@ip地址,输入服务器的账户密码。
10)验证连接成功后,卸载telnet服务
yum -y remove telnet telnet-server
版权归原作者 LazyCat2222 所有, 如有侵权,请联系我们删除。