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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?