组件 | 说明 |
---|---|
OpenSSH_9.8p1 | 最新版本(2024年8月) |
OpenSSL 1.1.1p | CentOS7中默认是OpenSSL 1.0.2k-fips 26 Jan 2017版本,OpenSSH_9.8p1不支持 |
CentOS7 | 主要是因为有大量CentOS老版本需要升级RPM,需要适配,故选择此版本。 |
AnolisOS | 如果在CentOS8或Anolis中构建,则无需升级openssl:OpenSSL 1.1.1k FIPS 25 Mar 2021 |
准备编译环境
yum -y groupinstall "development tools"
yum install rpm-build rpmdevtools zlib-devel gcc perl perl-devel pam pam-devel unzip compat-openssl10-devel krb5-devel krb5-libs pkgconfig gtk2-devel imake libXt-devel glibc-devel
准备构建环境
su - user1
rpmdev-setuptree
$ ll /home/user1/rpmbuild
总用量 0
drwxr-x--x. 3 user1 user1 27 8月 9 16:55 BUILD
drwxr-x--x. 2 user1 user1 6 8月 9 16:58 BUILDROOT
drwxr-x--x. 3 user1 user1 20 8月 9 16:57 RPMS
drwxr-x--x. 2 user1 user1 34 8月 9 16:38 SOURCES
drwxr-x--x. 2 user1 user1 26 8月 9 16:55 SPECS
drwxr-x--x. 2 user1 user1 41 8月 9 16:57 SRPMS
获取并修改spec文件
$ mv ~/openssh-9.8p1.tar.gz SOURCES/ $ cd rpmbuild $ tar zxvf SOURCES/openssh-9.8p1.tar.gz -C ~/ $ cp ~/openssh-9.8p1/contrib/redhat/openssh.spec SPECS/ # 修改openssh.spec中的如下位置 $ vi SPECS/openssh.spec %global no_x11_askpass 1 %global no_gnome_askpass 1 %global kerberos5 0 #Source1: http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-%{aversion}.tar.gz #%if %{without_openssl} --with-ssl-dir=/usr/local/openssl \ #%endif
注意:--with-ssl-dir=/usr/local/openssl前提需要按照RPM包安装步骤,先把openssl升级到1.1.1以上版本。如果自己系统里的openssl-devel的版本大于等于1.1.1,这里无需改动。
构建RPM包
rpmbuild -ba SPECS/openssh.spec
RPM包安装步骤
<====================更新openssl,如果openssl大于等于1.1.1版本,跳过此步骤
0、查看openssl版本 openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 1、将openssl.tar.gz解压到/usr/local/ tar zxvf openssl.tar.gz -C /usr/local/ 2、添加所缺函数库 echo "/usr/local/openssl/lib" >> /etc/ld.so.conf 3、更新函数库 ldconfig 4、将旧版本openssl备份 mv /usr/bin/openssl /usr/bin/openssl.old 5、新版本制作软链接 ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl 6、最后查看版本,更新完毕 openssl version OpenSSL 1.1.1p 21 Jun 2022
<==========================升级安装openssh
升级之前请先阅读该总结:
https://blog.csdn.net/avatar_2009/article/details/129665320?spm=1001.2014.3001.5501http://【OpenSSH升级】无论密码输入正确与否总是登录失败(error: Could not get shadow information for root)# 安装前备份配置文件
mv /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
# 不备份也可以,因为旧文件里的一些配置,新版本可能不识别,导致启动失败;安装完成后,需要关注如下几项被正确配置,否则可能导致密码认证失败。
Port 22
PermitRootLogin yes
PasswordAuthentication yes
# 升级安装
rpm -Uvh openssh* --nodeps
# 修改/etc/ssh/sshd_config
# 重启sshd
chmod 600 /etc/ssh/*key
service sshd restart 或 systemctl restart sshd
service sshd status 或 systemctl status sshd
# 重启sshd
chkconfig sshd on 或 systemctl enable sshd
# 验证(不关闭当前会话,新建会话,看是否登录成功,如有问题可联系我)
ssh -V
OpenSSH_9.8p1, OpenSSL 1.1.1p 21 Jun 2022