openssh-9.8p1 交叉编译

源码下载: OpenSSH: for OpenBSD

http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

tar xpf openssh-9.8p1.tar.gz

cd openssh-9.8p1

一、交叉编译器

export PATH=$PATH:/opt/toolchain/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin

export ARCH=arm

export CROSS_COMPILE=/opt/toolchain/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

二、配置

依赖  openssl  和  zlib 

这两个需要先交叉编译通过 openssl  和 zlib 编译

下载 zlib   http://www.zlib.net/zlib-1.3.1.tar.gz

zlib 编译方法: 

export CROSS_PREFIX=arm-linux-gnueabihf-

./configure  --prefix=/workstation/zlib-1.3.1/build  --shared 
make
make install

./configure --host=arm --exec-prefix=/workstation/openssh-build --sysconfdir=/workstation/openssh-build/etc/ssh --disable-etc-default-login CC=arm-linux-gnueabihf-gcc --with-zlib=/workstation/openssh/zlib-1.3.1/build --with-ssl-dir=/workstation/openssl-build/  --disable-strip

三、编译

make 

make install

四、遇到的报错

1、make: *** [host-key] Error 127

把Makefile 里面的 ./ssh-keygen 改为 ssh-keygen

2、make: [check-config] Error 127 (ignored)

Makefile 里面的 install: $(CONFIGFILES) $(MANPAGES) $(TARGETS) install-files install-sysconf host-key check-config 去掉 check-config

五、拷贝到目标机

把文件 /workstation/openssh-build 里分别拷贝到 /etc/ssh   /usr/  目录

还需要创建一个 /var/empty 的 root 用户文件。

拷贝完后运行 sshd -V 查看版本

# sshd -V

OpenSSH_9.8p1, OpenSSL 3.2.1 30 Jan 2024

### 在 CentOS 7 上安装 OpenSSH 9.8p1 的具体方法 在 CentOS 7 上安装 OpenSSH 9.8p1 可以通过两种主要方式实现:编译安装和使用 RPM 包安装。以下是这两种方法的详细步骤。 --- #### 方法一:编译安装 OpenSSH 9.8p1 1. **准备环境** 确保系统已安装必要的开发工具和依赖库。 ```bash yum groupinstall "Development Tools" -y yum install wget gcc gcc-c++ zlib-devel epel-release -y ``` 因为 OpenSSH 9.8p1 需要 OpenSSL 版本 >= 1.1.1,而 CentOS 7 默认的 OpenSSL 版本较低,因此需要安装 openssl11。 ```bash yum install openssl11 openssl11-devel -y ``` 2. **下载 OpenSSH 源码包** ```bash mkdir -p /data/software && cd /data/software/ wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz tar -xzf openssh-9.8p1.tar.gz ``` 3. **编译安装** 进入解压后的目录,并指定 openssl11 的头文件和库的位置。 ```bash cd /data/software/openssh-9.8p1 ./configure CFLAGS="-I/usr/include/openssl11" LDFLAGS="-L/usr/lib64/openssl11/" make make install ``` 4. **更新 PATH 环境变量** 将新安装的二进制文件路径加入到系统的 PATH 中。 ```bash echo 'export PATH=/usr/local/bin:/usr/local/sbin:$PATH' >> ~/.bashrc source ~/.bashrc ``` 5. **更新 systemd 服务配置** 修改 `sshd.service` 文件以指向新的 sshd 和配置文件。 ```bash cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.ori vi /usr/lib/systemd/system/sshd.service ``` 修改以下两行: ```ini EnvironmentFile=/usr/local/etc/sshd_config ExecStart=/usr/local/sbin/sshd -D $OPTIONS ``` 保存后重新加载 systemd 配置并重启服务。 ```bash systemctl daemon-reload systemctl restart sshd ``` --- #### 方法二:使用 RPM 包安装 OpenSSH 9.8p1 1. **下载 RPM 包** 使用第三方仓库提供的 OpenSSH 9.8p1 RPM 包集合。 ```bash mkdir -p /data/rpms && cd /data/rpms/ wget https://example.com/openssh-9.8p1-3.el7.x86_64.rpm wget https://example.com/openssh-clients-9.8p1-3.el7.x86_64.rpm wget https://example.com/openssh-server-9.8p1-3.el7.x86_64.rpm wget https://example.com/openssh-debuginfo-9.8p1-3.el7.x86_64.rpm ``` 2. **安装 RPM 包** 使用 `yum` 或 `rpm` 命令安装这些包。 ```bash yum localinstall openssh-9.8p1-3.el7.x86_64.rpm openssh-clients-9.8p1-3.el7.x86_64.rpm openssh-server-9.8p1-3.el7.x86_64.rpm -y ``` 3. **备份并替换配置文件** 备份现有 SSH 配置文件。 ```bash mv /etc/ssh /etc/ssh_bak ln -s /usr/local/etc/ssh /etc/ssh ``` 4. **重启 SSH 服务** 确保服务正常运行。 ```bash systemctl restart sshd ``` --- #### 注意事项 - 在升级过程中,建议先备份现有的 SSH 配置文件[^3]。 - 如果使用的是编译安装方式,请确保 PATH 环境变量正确设置,否则可能导致命令无法找到新版本的 sshd[^1]。 - 升级完成后,验证新版本是否生效。 ```bash ssh -V ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值