OpenSSH 9.9p2 编译安装全流程指南

🔐 OpenSSH 9.9p2 编译安装全流程指南

适用系统:麒麟 v10 SP3、Ubuntu 22.04 LTS、CentOS 7.9
📝 目的:从源码编译安装 OpenSSH 9.9p2 并升级 OpenSSL 至 1.1.1w 版本
🧰 适用于:系统管理员、安全加固、漏洞修复场景


📚 目录

  1. 概述
  2. 通用准备工作
  3. 麒麟 v10 SP3 安装流程
  4. Ubuntu 22.04 LTS 安装流程
  5. CentOS 7.9 安装流程
  6. 常见问题与解决方法
  7. 总结与后续建议

1️⃣ 概述

本文档提供在以下三种 Linux 发行版中编译安装 OpenSSH 9.9p2 的完整操作流程,并附带 OpenSSL 升级、telnet 临时连接配置、systemd 启动脚本等实用操作说明:

系统名称版本信息是否已验证
麒麟 LinuxKylin v10 SP3✅ 是
Ubuntu22.04 LTS✅ 是
CentOS7.9✅ 是

2️⃣ 通用准备工作

安装依赖包

🐧 CentOS / 麒麟
sudo yum install -y gcc make zlib-devel openssl-devel pam-devel perl wget
🐱 Ubuntu
sudo apt update
sudo apt install -y build-essential zlib1g-dev libssl-dev perl wget

下载 OpenSSH 源码包

cd /usr/local/src
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
tar -zxvf openssh-9.9p2.tar.gz
cd openssh-9.9p2

3️⃣ 麒麟 v10 SP3

编译安装 OpenSSH

./configure --prefix=/app/tools/openssh-9.9p2/
make -j $(nproc)
make install

创建软链接:

ln -s /app/tools/openssh-9.9p2 /app/tools/openssh

配置 Telnet 临时连接(防止断连)

yum install -y telnet-server
systemctl enable telnet.socket --now

useradd zbl
echo 'zhubaolin@123' | passwd --stdin zbl
echo 'zbl ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers

使用 telnet 登录后切换 root 用户进行操作。


修改 SSHD 配置文件

cp /app/tools/openssh/etc/sshd_config{,.bak}
cat > /app/tools/openssh/etc/sshd_config <<EOF
Port 22
PermitRootLogin yes
PasswordAuthentication yes
UseDNS no
EOF

停止旧服务并启动新版本:

pkill sshd
/app/tools/openssh/sbin/sshd

设置环境变量

echo 'export PATH=/app/tools/openssh/bin:/app/tools/openssh/sbin:$PATH' >> /etc/profile
source /etc/profile

systemd 管理服务

创建服务文件 /usr/lib/systemd/system/sshd99.service

[Unit]
Description=OpenSSH 9.9 server daemon
After=network.target

[Service]
Type=simple
ExecStart=/app/tools/openssh/sbin/sshd -D
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

启用服务:

systemctl daemon-reload
systemctl disable --now sshd
systemctl enable --now sshd99

清理旧版本(谨慎操作-可选)

rpm -qa | grep openssh | xargs rpm -e --nodeps

4️⃣ Ubuntu 22.04 LTS

安装 Telnet 服务

apt install -y openbsd-inetd telnetd

配置文件 /etc/xinetd.d/telnet

service telnet
{
    disable         = no
    flags           = REUSE
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.telnetd
    log_on_failure += USERID
}

启动服务:

systemctl enable inetd --now

编译安装 OpenSSH

步骤同上(略)


systemd 配置

创建用户 sshd

useradd -s /sbin/nologin -M sshd

配置 systemd 文件后启用服务:

systemctl daemon-reload
systemctl enable --now sshd99
systemctl disable --now inetd

5️⃣ CentOS 7.9

升级 OpenSSL 到 1.1.1w

wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz
tar xf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config
make -j $(nproc)
make install

echo '/usr/local/lib64/' > /etc/ld.so.conf.d/openssl.conf
ldconfig

编译安装 OpenSSH

步骤同上(略)


创建软链接和环境变量

ln -s /app/tools/openssh-9.9p2 /app/tools/openssh
echo 'export PATH=/app/tools/openssh/bin:/app/tools/openssh/sbin:$PATH' >> /etc/profile
source /etc/profile

6️⃣ 常见问题与解决方法

问题描述解决方法
libcrypto not found找不到 OpenSSL 共享库/usr/local/lib64 加入 /etc/ld.so.conf.d/openssl.conf 并执行 ldconfig
command not found新安装的命令无法识别检查 PATH 环境变量是否设置正确
sshd: no hostkeys available缺少主机密钥执行 ssh-keygen -A 自动生成
configure: error: no C compiler found缺少编译器安装 gcc 工具链

7️⃣ 总结与后续建议

✅ 总结流程图(以 CentOS 为例)

步骤内容
✅ 1安装依赖
✅ 2下载并解压 OpenSSH 源码
✅ 3编译安装 OpenSSH
✅ 4创建软链接与环境变量
✅ 5修改配置文件 /app/tools/openssh/etc/sshd_config
✅ 6配置 systemd 启动脚本
✅ 7启动服务并关闭 telnet
✅ 8可选:清理旧版本 openssh/openssl 包

📌 后续建议

  • 定期更新 OpenSSH 和 OpenSSL,保障系统安全性;
  • 使用自动化工具如 Ansible 或 SaltStack 批量部署;
  • 推荐将此文档打包为 RPM 或 Deb 包,便于复用;
### OpenSSH 9.9p2 下载及安装指南 #### 获取源码包 为了获得最新版本的OpenSSH,建议访问官方网站下载页面。通常可以从官方站点找到最新的发布版次以及对应的签名文件用于验证完整性[^1]。 对于特定提到的OpenSSH 9.9p2版本,可以前往[OpenBSD官网](https://www.openssh.com/)或通过FTP服务器获取该版本的压缩包。确保同时下载`.asc`结尾的GPG签名文件以便后续校验软件包的真实性与完整性。 #### 验证下载文件 在编译之前,应该先确认所下载的tarball未被篡改过。这一步骤可以通过gpg工具来完成: ```bash gpg --verify openssh-9.9p2.tar.gz.asc ``` 如果提示公钥未知,则需事先导入开发团队提供的公共密钥再执行上述命令。 #### 编译前准备 解压后进入目录并运行配置脚本设置编译参数。可能还需要预先安装一些依赖库如zlib-devel、openssl-devel等以支持完整的特性集。 ```bash tar xf openssh-9.9p2.tar.gz cd openssh-9.9p2 ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-md5-passwords --with-pam ``` 这里指定了自定义的目标路径和其他选项来增强安全性。 #### 执行编译过程 利用GNU Make工具来进行实际构建工作。此阶段会依据前面指定好的条件生成可执行程序及相关资源文件。 ```bash make ``` #### 安装至系统 最后一步就是把新编译出来的组件部署到位。考虑到权限问题,一般需要用root身份操作。 ```bash sudo make install ``` 成功完成后即可替换掉旧有的sshd服务端实现,并按照常规流程启动新的守护进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱包林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值