前言

centos7自带的ssh是7.4的,公司漏洞扫描出漏洞了,要求升级。

文中升级所用的版本号为:

  • openssh-9.3p1
  • openssl-1.1.1u

可以去官网下载最新版,替换上述版本号

https://www.openssh.com/portable.html

https://www.openssl.org/source/

一、查看已安装的版本号

查看ssl版本号

[root@localhost home]# openssl version
OpenSSL 1.1.1k  FIPS 25 Mar 2021

查看ssh版本号

[root@localhost home]# ssh -V
OpenSSH_9.0p1, OpenSSL 1.0.2u  20 Dec 2019

二、升级openssl

下载解压安装

cd /home
wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz
tar zxvf openssl-1.1.1u.tar.gz
cd openssl-1.1.1u && ./config --prefix=/usr/local/ssl shared  && make && make install

建立软链接

mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/bin/openssl /usr/local/bin/openssl    #仅适用Centos6
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

结果验证

[root@localhost home]# openssl version
OpenSSL 1.1.1u  30 May 2023 (Library: OpenSSL 1.1.1k  FIPS 25 Mar 2021)

三、升级openssh

下载解压安装

cd /home
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
tar zxvf openssh-9.3p1.tar.gz
cd openssh-9.3p1
./configure --without-openssl-header-check --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-pam && make && make install

结果验证

[root@localhost ssh]# service sshd restart
Restarting sshd (via systemctl):                           [  OK  ]
[root@localhost ssh]# ssh -V
OpenSSH_9.3p1, OpenSSL 1.1.1k  FIPS 25 Mar 2021

不要断掉当前的ssh链接,另外再开一个新的链接测试一下,有可能会链接失败,失败的话看下面的问题处理方法

四、可能出现的问题

1. 提示秘钥文件权限过度开放

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
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.

修改一下秘钥文件的权限,改为700即可

cd /etc/ssh/
chmod 700 ssh_host_ed25519_key
chmod 700 ssh_host_ecdsa_key
chmod 700 ssh_host_rsa_key
chmod 700 ssh_host_dsa_key

2.输入正确的密码但是一直提示密码错误

可能是启动了ssh但是sshd未启动

[root@localhost ssh]# service sshd restart
Restarting sshd (via systemctl):                           [  OK  ]

如果提示Failed to start sshd.service: Unit sshd.service not found.需要重装一下sshd

yum -y install openssh-server
systemctl enable sshd
service sshd start

参考

https://blog.csdn.net/huangbaokang/article/details/89887001

https://blog.csdn.net/m0_37656834/article/details/102389241

https://blog.csdn.net/xuexijava85/article/details/99702245

https://www.cnblogs.com/artemis999/p/16337510.html

最后修改:2024 年 03 月 12 日
如果觉得我的文章对你有用,请随意赞赏