OpenSSH升级

升级前:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
升级后:OpenSSH_8.5p1, OpenSSL 1.1.1g 21 Apr 2020

系统版本:CentOS Linux release 7.6.1810 (Core)

内核版本:Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

注意
需要安装telnet,当ssh挂掉的话,通过telnet可以控制系统。
telnet默认端口是23。

在线升级(略)

yum update openssh -y
yum install xinetd telnet-server -y

离线升级

下载包

复制代码
下载telnet离线包
xinetd-2.3.15-14.el7.x86_64.rpm (http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/xinetd-2.3.15-14.el7.x86_64.rpm)
telnet-0.17-65.el7_8.x86_64.rpm (http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/telnet-0.17-65.el7_8.x86_64.rpm)
telnet-server-0.17-65.el7_8.x86_64.rpm (http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/telnet-server-0.17-65.el7_8.x86_64.rpm)
下载ssh的离线包
openssl-1.1.1g.tar.gz (https://www.openssl.org/source/openssl-1.1.1g.tar.gz)
openssh-8.5p1.tar.gz  (http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.5p1.tar.gz)
下载pam相关的包
pam-1.1.8-23.el7.x86_64.rpm (http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/pam-1.1.8-23.el7.x86_64.rpm)
pam-devel-1.1.8-23.el7.x86_64.rpm (http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/pam-devel-1.1.8-23.el7.x86_64.rpm)
下载zlib相关的包
zlib-1.2.7-18.el7.x86_64.rpm (http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/zlib-1.2.7-18.el7.x86_64.rpm)
zlib-devel-1.2.7-18.el7.x86_64.rpm (http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/zlib-devel-1.2.7-18.el7.x86_64.rpm)

mkdir /opt/tools/
全部传到 /opt/tools/下面
复制代码

安装Telnet

检查telnet安装情况

rpm -qa | grep telnet
rpm -qa | grep telnet-server
rpm -qa | grep xinetd

卸载旧包(如果有的话,注意版本)

rpm -e telnet-0.17-65.el7_8.x86_64.rpm
rpm -e telnet-server-0.17-65.el7_8.x86_64.rpm
rpm -e xinetd-2.3.15-14.el7.x86_64.rpm

安装rpm包

rpm -ivh xinetd-2.3.15-14.el7.x86_64.rpm
rpm -ivh telnet-0.17-65.el7_8.x86_64.rpm
rpm -ivh telnet-server-0.17-65.el7_8.x86_64.rpm

启动telnet

systemctl start xinetd
systemctl start telnet.socket

测试23端口是否监听

ss -anp | grep 23 | grep LISTEN

root用户不能登录telnet,添加新用户

useradd test
passwd test
设置密码
给test用户增加sudo权限 vi
/etc/sudoers 最后添加一行 test ALL=(ALL) NOPASSWD: ALL

telnet方式登录验证

telnet ip 23
使用test用户登录,登录后切换到root

有些情况下telnet需要额外的配置,这里没遇到,忽略

升级openssl

备份旧的ssh

cd /opt/tools/
tar -zxvf openssl-1.1.1g.tar.gz
ll /usr/bin/openssl
mv /usr/bin/openssl /usr/bin/openssl_bak
ll /usr/include/openssl
mv /usr/include/openssl /usr/include/openssl_bak

配置参数

cd /opt/tools/openssl-1.1.1g/
./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl

编译和安装

make && make install

做软链接

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

检查

ll /usr/bin/openssl
ll /usr/include/openssl -ld

命令行执行下面2个命令加载新配置

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
/sbin/ldconfig
如果报了 “libnvidia-container.so.1 不是符号链接错误”,之下以下
ldconfig -n /etc/ld.so.conf

查看确认版本

openssl version

 

检查或者升级pam

检查pam

rpm -qa | grep pam
如下
pam-devel-1.1.8-23.el7.x86_64
pam-1.1.8-23.el7.x86_64

如果没有或者版本不对,就升级(本次操作需要升级pam和安装pam-devel)

rpm -Uvh pam-1.1.8-23.el7.x86_64.rpm
rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm
再查看
rpm -qa | grep pam

 

升级openssh

备份

mv /etc/ssh/ /etc/ssh_bak
mkdir /opt/tools/bak
mv /usr/lib/systemd/system/sshd.service /opt/tools/bak/

解压

cd /opt/tools/
tar -zxvf openssh-8.5p1.tar.gz
cd openssh-8.5p1

配置、编译、安装

./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl   --with-zlib   --with-md5-passwords   --with-pam  && make && make install

如果报了 configure: error: *** zlib.h missing - please install first or check config.log ***

查看
rpm -qa | grep zlib
升级
rpm -Uvh zlib-1.2.7-18.el7.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
再查看
rpm -qa | grep zlib

验证

echo $?

修改配置文件/etc/ssh/sshd_config,以下2个值要设置

PermitRootLogin yes
UseDNS no

配置

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd
chkconfig sshd on
systemctl restart sshd

测试

ss -anp | grep 22 | grep LISTEN
查看版本
ssh -V
使用xshell通过ssh登录

 排查错误

当遇到Could not get shadow 之类的报错
/etc/ssh/sshd_config增加
UsePAM yes

或者尝试
关闭selinux
查看ssh的日志 /var/log/secure

 

参考 https://blog.csdn.net/songzhusheren/article/details/53167008

posted @   szcj~  阅读(106)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示