手把手教你ssh升级openssh9.2,升级失败回退,纯干货

这篇具有很好参考价值的文章主要介绍了手把手教你ssh升级openssh9.2,升级失败回退,纯干货。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对于解决openssh漏洞,最好的办法就是升级,本文以openssh9.2为例,升级方法都一样,主要区别在于不同openssh版本需要依赖包的版本不一样。

1准备:

我的现在版本:

zlib:zlib-1.2.7-18

perl:perl5 (revision 5 version 16 subversion 3)

pam:pam-1.1.8-22

openssl:openssl-1.0.2k-19

openssh:openssh-7.4p1-21

依赖包下载:zlib、perl、pam、openssl、openssh,升级openssl期间可能会报错。

没有vnc后台登录的,需要开启telnet服务防止万一,最好ftp服务也开下。

附上包下载地址

zlib-1.2.13.tar.gz:https://www.zlib.net/

perl-5.16.1.tar.gz:http://www.cpan.org/src/5.0/

openssl-1.1.1t.tar.gz:https://www.openssl.org/source/

Linux-PAM-1.3.1.tar.xz:https://www.linuxfromscratch.org/blfs/view/9.0/postlfs/linux-pam.html

openssh:Index of /pub/OpenBSD/OpenSSH/portable/

xinetd-2.3.15-14.el7.x86_64、telnet-0.17-65.el7_8.x86_64、telnet-server-0.17-65.el7_8.x86_64、vsftpd-3.0.2-28.el7.x86_64.rpm:http://www.rpmfind.net/linux/rpm2html/search.php

2.开启telnet服务

rpm -ivh  xinetd-2.3.15-14.el7.x86_64

rpm -ivh  elnet-0.17-65.el7_8.x86_64

rpm -ivh  telnet-server-0.17-65.el7_8.x86_64

修改/etc/xinetd.d/telnet的disable= no,没有创建一个
service telnet
{
    flags=REUSE
    socket_type=stream
    wait=no
    user=root
    server=/usr/sbin/in.telnetd
    log_on_failure += USERID
    disable= no
}

启动服务

service xinetd restart / systemctl restart xinetd.service
systemctl start telnet.socket

ss -ntl | grep 23

这时使用root登录可能出现Login incorrect,查看/var/log/secure

手把手教你ssh升级openssh9.2,升级失败回退,纯干货

在/etc/securetty中加入对应的模拟终端,如pts/1

3.依赖包安装,我的没有升级perl、pam

zlib安装:
tar -xzvf zlib-1.2.13.tar.gz
cd zlib-1.2.13
./configure --prefix=/usr/local/zlib
make && make install

perl安装:
tar -xzf perl-5.16.1.tar.gz
cd perl-5.16.1
./Configure -de   缺省配置
make && make install
perl -v

pam安装:
tar -xf Linux-PAM-1.3.1.tar.xz
cd Linux-PAM-1.3.1
./configure 
make && make install

openssl安装:

openssl version -a
tar -zxvf  openssl-1.1.1t.tar.gz

mkdir  -p  /usr/bak/lib64        恢复版本需要
cp -ar  /usr/lib64/*    /usr/bak/lib64     恢复版本需要

cd openssl-1.1.1t
./config --prefix=/usr/local/ssl  
make && make install

cp -a  /usr/bin/openssl   /usr/bin/openssl.bak   

for i in $(rpm -qa | grep openssl);do rpm -e $i --nodeps ;done 卸载原包

ln -s /usr/local/ssl/bin/openssl  /usr/bin/openssl
ln -s /usr/local/ssl/lib/libssl.so.1.1   /usr/lib/libssl.so.1.1
ln -s /usr/local/ssl/lib/libcrypto.so.1.1   /usr/lib/libcrypto.so.1.1
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
ldconfig -v

4.openssh安装

备份原配置

mkdir    /usr/bin/ssh_old_bk
cp  -ar  /usr/bin/ssh*   /usr/bin/ssh_old_bk
cp  -a  /usr/sbin/sshd /usr/sbin/sshd_old_bk
mkdir   /etc/ssh_old_bk  
cp  -ar  /etc/ssh/*    /etc/ssh_old_bk
cp  /etc/init.d/sshd    /etc/init.d/sshd_old_bk 
cp  /etc/pam.d/sshd   /etc/pam.d/sshd._old_bk 
cp  /etc/sysconfig/sshd  /etc/sysconfig/sshd_old_bk
cp /usr/lib/systemd/system/sshd.service   /usr/lib/systemd/system/sshd.service_old_bk

安装openssh

tar -zxvf openssh-9.2p1.tar.gz
cd openssh-9.2p1
./configure --prefix=/usr/local/openssh  --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make &&  make install
make clean
for i in $(rpm -qa |grep openssh);do rpm -e $i --nodeps ;done 卸载原包

复制配置

cp -ar  /usr/local/openssh/bin/*   /usr/bin/
cp -a  /usr/local/openssh/sbin/sshd  /usr/sbin/sshd
mkdir  /etc/ssh
cp  -a  /usr/local/openssh/etc/ssh_host_ecdsa_key.pub  /etc/ssh/ssh_host_ecdsa_key.pub
cp -a  /usr/openssh-9.2p1/contrib/redhat/sshd.init  /etc/init.d/sshd        
cp -a  /usr/openssh-9.2p1/contrib/redhat/sshd.pam /etc/pam.d/sshd  
chmod +x /etc/init.d/sshd    

配置sshd_config

echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
 

运行服务

systemctl daemon-reload
systemctl enable sshd.service
systemctl start sshd.service

ssh -V

升级后xshell5远程连接提示:找不到匹配的host key算法,此时升级到xshell7可以了

手把手教你ssh升级openssh9.2,升级失败回退,纯干货

恢复版本openssh-7.4p1-21,提前下载原版本包:

删除zlib

rm   -rf   /usr/local/zlib

rpm -qa | grep  zlib

openssl恢复

rpm -ivh --nodeps   penssl-1.0.2k-19.el7.x86_64.rpm
mv   /usr/bin/openssl.bak    /usr/bin/openssl
cp   -a     libssl.so.1.0.2k            /usr/lib64        
cp   -a    libcrypto.so.1.0.2k        /usr/lib64     
ls  -n    libssl.so.1.0.2k    libssl.so.10                  
ls  -n    libcrypto.so.1.0.2k  libcrypto.so.10       
rm -rf    /usr/lib/libssl.so.1.1                              
rm -rf  /usr/lib/libcrypto.so.1.1                         
vim   /etc/ld.so.conf                                        
ldconfig -v
rm -rf  /usr/local/ssl    
openssl  version

openssh恢复

rpm -ivh --nodeps    openssh-7.4p1-21.el7.x86_64.rpm
cp   -ar  /usr/bin/ssh_old_bk/ssh*       /usr/bin/
mv    /usr/sbin/sshd_old_bk     /usr/sbin/sshd  
cp  -ar      /etc/ssh_old_bk/*        /etc/ssh/
mv   /etc/init.d/sshd_old_bk     /etc/init.d/sshd 
chmod +x /etc/init.d/sshd 
mv     /etc/pam.d/sshd._old_bk     /etc/pam.d/sshd
mv    /etc/sysconfig/sshd_old_bk   /etc/sysconfig/sshd
mv    /usr/lib/systemd/system/sshd.service_old_bk   /usr/lib/systemd/system/sshd.service   

rm -rf  /usr/local/openssh

重启服务

service sshd restart

恢复可能报错解决:

1.秘钥文件损坏

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

2.

sshd -t  提示/var/empty报错
chown -R root.root /var/empty/sshd  #将文件所述用户调整为root用户
chmod 744  /var/empty/sshd #调整文件权限
service sshd restart   
ssh -V

3.账户名密码输入正确,sshd配置文件没错,就是提示Permission denied, please try again,可能是/etc/pam/下缺少sshd文件,复制一份就好了

参考链接:

https://blog.csdn.net/s619782146/article/details/125533781
https://www.cnblogs.com/yangweiting/articles/17061915.html文章来源地址https://www.toymoban.com/news/detail-483274.html

到了这里,关于手把手教你ssh升级openssh9.2,升级失败回退,纯干货的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你暴力破解

    暴力破解是一种攻击手段,使用大量的认证信息在认证接口尝试登录,直到得到正确的结果。 2.1标题基于表单的暴力破解 2.1.1 第一步:打开burpsuite拦截 2.1.2 第二步:将拦截到的包右击发送到intruder模块 (其中简单介绍一下intruder模块) Target主要是设置暴力破解访问的host地址

    2024年02月07日
    浏览(37)
  • 手把手教你落地DDD

    一、前言 常见的DDD实现架构有很多种,如经典四层架构、六边形(适配器端口)架构、整洁架构(Clean Architecture)、CQRS架构等。架构无优劣高下之分,只要熟练掌握就都是合适的架构。本文不会逐个去讲解这些架构,感兴趣的读者可以自行去了解。 本文将带领大家从日常的

    2024年02月16日
    浏览(34)
  • 手把手教你实战TDD

    领域驱动设计,测试驱动开发。 我们在《手把手教你落地DDD》一文中介绍了领域驱动设计(DDD)的落地实战,本文将对测试驱动开发(TDD)进行探讨,主要内容有:TDD基本理解、TDD常见误区、TDD技术选型,以及案例实战。希望通过本文,读者能够理解掌握TDD并将其应用于实际

    2024年02月08日
    浏览(31)
  • 手把手教你做主成分分析

    主成分分析是一种降维处理的统计方法,实践中有三个应用场景: 信息浓缩:将多个分析项浓缩成几个关键概括性指标; 权重计算:利用方差解释率值计算各概括性指标的权重; 综合评价:基于主成分得分构造综合得分数据,用于综合评价。 接下来,以一个具体案例来学习

    2024年02月01日
    浏览(39)
  • 手把手教你小程序反编译

    1.反编译工具unveilr :百度网盘链接:https://pan.baidu.com/s/10Wle8CwvBq54GPWcbEnxLQ 提取码:bivh   解压即可用。 2.微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html 1.获取小程序存储文件夹 (1)打开PC端微信设置,在文件管理中找到存储路径,选择打开文件夹。

    2024年04月12日
    浏览(34)
  • 手把手教你如何使用Docker

    我们在公司开发中,会有开发环境,测试环境,上线环境, 比如我们开发人员开发好了一个项目,在开发环境中运行正常,但测试人员拉到测试环境就跑不起来【jdk版本等】,或者上线的时候运行不起来,这时候就要为每个机器配置一个环境,那运维人员不得累死?【哈哈,

    2024年02月10日
    浏览(50)
  • 手把手教你如何使用SimiliarWeb

    在之前的“手把手教你如何使用Google Trends”文章中我们讲到从事跨境电商的卖家第一步遇到的问题是“客户在哪里?”该如何推广我的产品?因此若想自己的店铺做大做好,则需要工具来帮助分析市场行情,根据市场行情调整自己的业务状况。小编在上篇中已经讲解了三个特

    2024年02月09日
    浏览(42)
  • 手把手教你用代码画架构图

    作者:京东物流 覃玉杰 本文将给大家介绍一种简洁明了软件架构可视化模型——C4模型,并手把手教大家如何使用 代码 绘制出精美的C4架构图。 阅读本文之后,读者画的架构图将会是这样的: 注:该图例仅作绘图示例使用,不确保其完整性、可行性。 C4是软件架构可视化

    2024年02月04日
    浏览(41)
  • 手把手教你玩Hugging Face

    Hugging Face起初是一家总部位于纽约的聊天机器人初创服务商,他们本来打算创业做聊天机器人,然后在github上开源了一个Transformers库,虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超100,000个预训练模型,10,000个数据集,变成

    2024年02月06日
    浏览(42)
  • 手把手教你怎么写顺序表

    目录 一、顺序表有什么功能? 二、实现顺序表的各个功能 1.前置准备 2.初始化顺序表 3.顺序表扩容 4.打印顺序表 5.增加顺序表成员 5.1尾增 5.2头增  6.删除顺序表中成员的内容 6.1尾删 6.2头删  7.查找成员  8.修改(替换) 9.插入(在目标位置插入成员) 10.定向删除(将目标位置的成

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包