Linux 编译安装 OpenSSH

本文详细介绍了如何在AWSAmazonLinux2和CentOS7系统上安装OpenSSH的最新版本9.3p1,包括设置编译选项,备份并删除默认配置,下载源码编译安装,修改配置以支持RSA密钥,以及还原配置和添加启动服务。特别指出,在某些云平台上,可能需要允许root用户登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文适用系统:AWS Amazon Linux 2、CentOS 7

1. 安装依赖
yum -y install gcc openssl11 openssl11-devel pam-devel zlib-devel
2. 设置编译 FLAG
export CFLAGS=$(pkg-config --cflags libssl11)
export LDFLAGS=$(pkg-config --libs libssl11)
3. 备份配置,删除系统自带软件包
mv /etc/pam.d/sshd /etc/pam.d/sshd.bak
rpm -e --nodeps $(rpm -qa | grep openssh)
rm -rf /etc/ssh/*
4. 下载源码包,编译安装
cd src
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
tar xf openssh-9.3p1.tar.gz
cd openssh-9.3p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib
make -j$(nproc)
make install
5. 修改服务端和客户端配置,支持 RSA 密钥
cat >> /etc/ssh/sshd_config << EOF
PubkeyAcceptedAlgorithms=+ssh-rsa
UseDNS no
UsePAM yes
EOF

echo 'PubkeyAcceptedKeyTypes +ssh-rsa' >> /etc/ssh/ssh_config

注意事项:如华为云、阿里云、腾讯云等使用 root 用户登录云主机的系统,需要执行此操作,否则可以免去以下步骤

echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
6. 还原配置,添加启动服务
mv /etc/pam.d/sshd.bak /etc/pam.d/sshd
cp contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
systemctl daemon-reload
systemctl restart sshd
### 如何编译安装 OpenSSH #### 下载 OpenSSH 源代码 为了获取最新版本的 OpenSSH 源代码,可以从官方站点下载相应的压缩包[^2]。例如: ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-x.xp1.tar.gz ``` 这里 `x.xp1` 表示具体的版本号。 #### 解压源码包并进入相应目录 利用 tar 工具解开刚才下载下来的文件,并切换至解压后的文件夹内: ```bash tar -zxvf openssh-x.xp1.tar.gz cd openssh-x.xp1 ``` 上述命令会创建一个新的文件夹用于存放所有的源代码文件[^1]。 #### 配置编译环境 通过运行 configure 脚本来准备构建过程。这一步骤允许调整一些设置以适应不同的平台需求或增加额外的功能支持: ```bash ./configure ``` 对于大多数情况,默认配置已经足够满足基本的需求了。 #### 编译安装 一旦准备工作就绪,则可以通过调用 make 来开始实际的编译工作;之后再借助于带有超级权限的操作完成最终的安装流程: ```bash make sudo make install ``` 这样就可以把新编译出来的 SSH 守护进程放置到系统的标准位置去了。 #### 启动服务及验证安装成果 最后还需要确保新的 SSH 服务能够正常启动并且监听端口处于开放状态。如果是基于较新的 Linux 发行版可能还需更新 init 系统的服务列表以便自动加载该服务[^4]: ```bash mv /etc/pam.d/sshd.bak /etc/pam.d/sshd cp contrib/redhat/sshd.init /etc/init.d/sshd chkconfig --add sshd chkconfig sshd on systemctl daemon-reload systemctl restart sshd ``` 以上步骤适用于 Red Hat Enterprise Linux (RHEL) 及其衍生产品如 CentOS 或 Fedora 等系统,在这些平台上可能会预装有较低版本的 OpenSSH ,因此建议按照实际情况决定是否要先移除旧有的组件后再继续后续操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值