系统环境:
OS:Kylin-Server-10-SP2-x86-Release-Build09-20210524
软件版本:OpenSSH_8.2p1, OpenSSL 1.1.1f
一、源码安装升级
1、下载源码包
下载zlib-1.2.11.tar.gz、openssl-1.0.2k.tar.gz、openssh-7.4p1.tar.gz,
openssl不要使用1.1.0版本的,编译openssh必定报错
wget http://zlib.net/zlib-1.2.11.tar.gz
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
wget -c http://mirror.mcs.anl.gov/openssh/portable/openssh-7.4p1.tar.gz
也可以直接上官网下载。
0524系统zlib默认版本为1.2.11,无需再安装下载
2、安装必要的依赖包
yum -y install gcc libcap libcap-devel glibc-devel pam-devel krb5-devel krb5-libs
3、编译安装zlib(省略)
tar -zxf zlib-1.2.11.tar.gz -C
cd /tmp/zlib-1.2.11
./configure --shared
make
make install
4、编译安装openssl
tar -zxf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k/
./config --prefix=/usr --shared
Make
make install
openssl version -a
5、编译安装openssh
tar -zxf openssh-7.4p1.tar.gz
cd openssh-7.4p1/
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr --with-md5-passwords --mandir=/usr/share/man --with-kerberos5=/usr/lib64/libkrb5.so
make
make install
echo “Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc”>>/etc/ssh/sshd_config
ssh -V
6、安装后配置
6.1 此时升级完成后,本服务器无法远程连接别的服务器
检查该配置文件,将第3和第5行注释掉解决该问题
6.2且systemctl重启sshd服务一直activating,自动重启
怀疑是systemctl无法托管源码安装的openssh,尝试使用源码包自带的sshd.init文件可以托管sshd
解决方法:
1.将源码安装包中 contrib/redhat/sshd.init 文件复制到 /etc/init.d/ 目录下并添加可执行权限。
2.然后,使用该脚本启动sshd服务
这时,/run/systemd/generator.late/ 目录下会产生一个名为 sshd.service的 systemd 服务配置文件。
3.将这个文件复制到 systemd 的服务配置文件目录下
cp /run/systemd/generator.late/sshd.init.service /usr/lib/systemd/system/sshd.service
4.重新加载systemd,这时再通过systemctl命令操作sshd服务就正常了。
systemctl daemon-reload
systemctl restart sshd
参考文档:https://github.com/Feyico/OpenSSH7.4p1_Update
https://blog.csdn.net/weixin_43863487/article/details/109902142