centos 升级OpenSSH 到 9.7

摘要

OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 9.6之前版本存在安全漏洞,该漏洞源于当在添加PKCS11托管私钥的过程中指定目标约束时,这些约束仅应用于第一个密钥。

为了解决以漏洞,将openssh的版本升级到9.7. 

准备工作

下载源

下载地址:Index of /pub/OpenBSD/OpenSSH/portable/

通过ftp上传到/home目录 

查看原有版本

ssh -V

 

查找安装位置 whereis ssh

备份

根据安装位置,进行数据备份

mv /etc/ssh /etc/ssh_old.bak
 
mv /usr/bin/ssh /usr/bin/ssh_old.bak
 
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen_old.bak
 
mv /usr/sbin/sshd /usr/sbin/sshd_old.bak
 
mv /etc/pam.d/sshd.pam /etc/pam.d/sshd.pam_old.bak

开始工作

解压缩

tar -zxvf openssh-9.7p1.tar.gz

进入到解压的文件夹

cd openssh-9.7p1

初始化openssh

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-zlib

大家可以通过命令查看初始化的参数信息 ./configure --help

  1. ./configure
    • 这是一个脚本,用于准备OpenSSH的编译环境。它会检查你的系统环境,包括必要的库和工具是否已安装,并据此生成适合你的系统的Makefile文件。Makefile文件是编译和安装软件时所需的自动化脚本。
  2. --prefix=/usr/local/openssh
    • 这个选项指定了OpenSSH安装后的根目录。默认情况下,软件可能会被安装到系统的标准位置(如/usr/local),但通过使用--prefix选项,你可以指定一个不同的安装目录。在这个例子中,OpenSSH的所有文件(包括可执行文件、配置文件等)都将被安装到/usr/local/openssh目录下。
  3. --sysconfdir=/etc/ssh
    • 这个选项指定了OpenSSH配置文件的存放目录。虽然OpenSSH的安装目录可以通过--prefix选项更改,但你可能希望将配置文件(如sshd_config)保留在系统的标准配置目录下,以便于管理和访问。在这个例子中,配置文件将被放置在/etc/ssh目录下。
  4. --with-pam
    • 这个选项启用了对Pluggable Authentication Modules (PAM) 的支持。PAM是一个用于认证服务的框架,它允许系统管理员配置和更新认证方法,而无需修改应用程序代码。通过启用PAM支持,OpenSSH可以利用PAM提供的认证机制,如密码验证、双因素认证等。
  5. --with-ssl-dir=/usr/local/openssl
    • 这个选项指定了OpenSSL的安装目录。OpenSSL是一个强大的安全套接字层密码库,它被广泛用于实现SSL和TLS协议。OpenSSH需要OpenSSL来提供加密功能。如果你将OpenSSL安装在了非标准目录(如/usr/local/openssl),你需要通过--with-ssl-dir选项告诉OpenSSH它的位置。
  6. --with-zlib
    • 这个选项启用了对zlib库的支持。zlib是一个广泛使用的数据压缩库,OpenSSH可以使用它来压缩通过SSH连接传输的数据,从而提高传输效率。如果你的系统中已经安装了zlib库,这个选项会启用对zlib的支持。

 

若出现如下错误:

error: OpenSSL >= 1.1.1 required (have "100020bf (OpenSSL 1.0.2k-fips 26 Jan 2017)")

那我们就重新编译安装高一点版本的openssl,查看我另外一篇文章centos 升级openssl 到3.0.14-优快云博客

执行成功如下图所示:

安装和编译

配置完成后,进行安装和编译

make && make install

 成功后,如下图所示:

安装完成后,进行配置文件的复制

cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
 
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
 
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
 
cp -p contrib/redhat/sshd.init /etc/init.d/sshd

添加权限

chmod +x /etc/init.d/sshd 

修改sshd_config文件(一定)

vim  /etc/ssh/sshd_config

PermitRootLogin yes 、PubkeyAuthentication yes、PasswordAuthentication yes 将配置文件中这几个改为yes.

说明:

PermitRootLogin yes:允许root用户通过SSH登录到系统
PubkeyAuthentication yes:启用公钥身份验证
PasswordAuthentication yes:启用密码身份验证

开启开机自启sshd,重启,查看状态

/sbin/chkconfig sshd on
systemctl restart sshd
systemctl status sshd

 

验证是否成功

sshd -V 或者 ssh -V

重新打开一个中端进行验证,如果成功登陆则成功。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值