升级OpenSSH 9.8p1(CentOS 7)
下载地址
- Perl: https://www.perl.org/get.html
- zlib: https://www.zlib.net/
- Open SSH: 官网 和 GitHub Releases
- Open SSL: https://www.openssl.org/source/
- 阿里云镜像rpm源:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
安装gcc
获取所需的 RPM 包
gcc
gcc-c++
cpp
glibc-devel
libmpc
mpfr
zlib-devel
binutils
pam
pam-devel
可以在上面提供的阿里云镜像rpm源中找到
批量安装
rpm-ivh *.rpm --nodeps--force
安装Perl
检查是否已安装Perl,已经安装可以选择跳过
# 解压tar-zxvf perl-x.xx.x.tar.gz
# 进入解压后的目录中cd perl-x.xx.x/
# 配置、安装Perl
./Configure -des-Dprefix=/usr/local/perl
#编译make#安装makeinstall
配置环境变量
# 配置环境变量vim ~/.bash_profile
#这里的/usr/local/perl是上面配置的安装目录,如果配置了别的安装目录可以自行修改# 在文件最末尾增加一行exportPATH=/usr/local/perl/bin:$PATH# 刷新缓存source ~/.bash_profile
# 检查是否安装成功
perl -V
安装zlib
检查是否已安装zlib,已经安装可以选择跳过
# 解压文件,注意替换版本tar-zxvf zlib.tar.gz
cd zlib-x.x.x
#配置安装目录,有需要的可以自行更改
./configure --prefix=/usr/local/zlib
#编译make#安装makeinstall
编制环境变量
# 配置环境变量vim ~/.bash_profile
#这里的/usr/local/perl是上面配置的安装目录,如果配置了别的安装目录可以自行修改# 在文件最末尾增加一行exportLD_LIBRARY_PATH=/usr/local/zlib/lib:$LD_LIBRARY_PATH# 刷新缓存source ~/.bash_profile
# 输出include、lib、share文件夹,就算安装完成ls /usr/local/zlib
安装OpenSSL
卸载原来的OpenSSL
# 会输出例如:openssl-1.0.2k-8.el7.x86_64rpm-qa|grep openssl |grep-v lib
# openssl-1.0.2k-8.el7.x86_64 为上面命令的输出
yum -y remove openssl-1.0.2k-8.el7.x86_64
安装
# 解压,注意替换版本号tar-zxvf openssl-x.x.x.tar.gz
# 进入解压后的目录cd openssl-x.x.x
# 注意这个目录,高版本可能是/usr/local/openssl/lib64,低版本/usr/local/openssl/lib
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl -Wl,-rpath,/usr/local/openssl/lib64 shared
make&&makeinstall
注意!注意!注意!
**注意:安装检查一下
/usr/local/openssl
目录下是
lib
还是
lib64
,如果与你
./config
配置的不符合,请重新配置安装执行
./config
将你当前版本的
lib
或者
lib64
目录,然后再执行
make && make install
,一定要配置对,不然后面配置安装Open SSH执行./configure时候会报错找不到SSL的头文件**
创建软链接
ln-s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln-s /usr/local/openssl/include/openssl /usr/include/openssl
更新系统配置
注意!注意!注意!
**注意:
/usr/local/openssl/lib64
这个目录要看你安装后的
/usr/local/openssl/
目录下是
lib
还是
lib64
,一定要配置对!**
echo"/usr/local/openssl/lib64">> /etc/ld.so.conf
/sbin/ldconfig
检查版本
openssl version
安装OpenSSH
卸载原来的版本
rpm-qa|grep openssh
# 输出
openssh-clients-7.4p1-11.el7.x86_64
openssh-7.4p1-11.el7.x86_64
openssh-server-7.4p1-11.el7.x86_64
# 注意替换版本号
yum -y remove openssh-clients-7.4p1-11.el7.x86_64 openssh-7.4p1-11.el7.x86_64 openssh-server-7.4p1-11.el7.x86_64
备份Open SSH配置文件
cp-r /etc/ssh /etc/ssh.bak
rm-rf /etc/ssh
安装
tar-zxvf openssh-portable-V_9_8_P1.tar.gz
cd openssh-portable-V_9_8_P1
# 配置
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam --with-ssl-engine
make&&makeinstall
创建软链接
ln-s /usr/local/openssh/sbin/sshd /usr/sbin/sshd
ln-s /usr/local/openssh/bin/ssh /usr/bin/ssh
ln-s /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add
ln-s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
ln-s /usr/local/openssh/bin/ssh-keyscan /usr/bin/ssh-keyscan
将openssh的服务脚本复制到/etc/init.d目录下
# 备注:sshd.init 文件是存放在openssh的压缩包中,需要在解压的文件夹中查找cp /home/szym/open_ssh_files/openssh-portable-V_9_8_P1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
添加sshd服务
chkconfig --add sshd
检查openssh版本
systemctl restart sshd
ssh-V
升级完新的ssh配置文件默认关闭root账户的远程登录,如需开启请修改配置文件/etc/ssh/sshd_config
# 找到配置项 PermitRootLogin 改为 yes
PermitRootLogin yes
参考
版权归原作者 Coder-Ling 所有, 如有侵权,请联系我们删除。