手把手教你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日
    浏览(62)
  • 手把手教你落地DDD

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

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

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

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

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

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

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

    2024年02月04日
    浏览(53)
  • 手把手教你彻底卸载MySQL

    ❤写在前面 ❤博客主页: 努力的小鳴人 ❤系列专栏: MySQL8.0基础学习 ❤欢迎小伙伴们, 点赞👍关注🔎收藏🍔 一起学习! ❤如有错误的地方,还请小伙伴们指正!🌹 ​ 目录 步骤1:停止MySQL服务 步骤2:软件的卸载 步骤3:残余文件的清理 步骤4:清理注册表 步骤5:删除

    2024年02月05日
    浏览(43)
  • 手把手教你爬取网站信息

    如题,理解这一部分需要一定的Python基础,有些代码我不做详细解释了,但是用这个方法是确实可以爬到的。 1. 在抓包⼯具中先定位到和浏览器地址栏的⽹址⼀样的数据包 ①在页面中右击鼠标,点击检查,博主这里用的是Google浏览器 ②在弹出来的页面中点击Network,然后再重

    2024年02月02日
    浏览(42)
  • 手把手教你绘制小程序海报

    海报分享功能在许多应用中应该是很常见的,因为它作为一种常用的应用推广和拉新的方式。 接下来看个实际的案例,如下: 把任务拆解下: 如何绘制海报 如何把绘制后的海报保存到相册 用 canvas 来绘制海报。 这里需要了解基本的 canvas api ,不熟悉可以先去了解下相关

    2024年02月04日
    浏览(53)
  • 手把手教你kali渗透Metasploitable

    2.ifconfig查看Metasploitable的IP: 端口爆破:FTP、SSH等 工具:Hydra 备用字典:user.txt: pass,txt: 一、 爆破FTP //注意路径是桌面还是Desktop 二、 爆破SSH 利用爆破得到的用户名和密码,进行远程连接测试: 成功连接: 三、端口渗透: 利用metasploit 然后在kali linux中进行渗透: 启动msf msf

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

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

    2024年02月06日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包