前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在线源码升级OpenSSH版本

在线源码升级OpenSSH版本

作者头像
染指流年
发布2023-03-13 15:55:11
1.5K0
发布2023-03-13 15:55:11
举报
文章被收录于专栏:Mr.Wang
  • 记一次openssh低版本漏洞修复过程,升级openssh版本至最新
  • 环境:
    • 系统版本:CentOS 7.6.1801(ip:192.168.110.113)
    • 原ssh版本:OpenSSH_7.4p1
    • 新ssh版本:OpenSSH-8.2p1
    • 安装方式:源码编译安装
    • 源码包位置:提前将源码包上传至/usr/local/src/
    • 源码下载地址:https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/

1.启用telnet服务

代码语言:javascript
复制
#这里一定要启用telnet服务,以免ssh升级失败无法远程系统
#检查是否已经安装了telnet-server和xinetd服务,如果没有则安装之,否则跳过
[root@test ~]$ rpm -qa telnet-server xinetd
[root@test ~]$
#没有安装,我们安装一下
[root@test ~]$ yum install telnet-server xinetd

2.启动服务并设置为开机自启动

代码语言:javascript
复制
[root@test ~]$ systemctl start telnet.socket
[root@test ~]$ systemctl start xinetd
[root@test ~]$ systemctl enable telnet.socket
[root@test ~]$ systemctl enable xinetd
#telnet安装完成,此时通过telnet登陆系统会报密码错误从而无法登陆,解决方案如下

3.解决密码错误

代码语言:javascript
复制
[root@test ~]$ vim /etc/pam.d/remote
auth       required     pam_securetty.so
#将上面这一行注释掉即可,注释后如下:
#auth       required     pam_securetty.so
[root@test ~]$ systemctl  restart telnet.socket #重启telnet服务

4.测试telnet登陆

代码语言:javascript
复制
[root@mylinux]$ telnet 192.168.110.113
Kernel 3.10.0-957.21.3.el7.x86_64 on an x86_64
test login: root       
Password: 
Last login: Thu Jul  9 17:44:10 from 10.100.7.210
[root@test ~]$
#登陆成功,接下来开始升级openssh

5.安装依赖环境

代码语言:javascript
复制
[root@test ~]$ yum install openssl*
[root@test ~]$ yum install zlib*
[root@test ~]$ yum install gcc

6.备份ssh目录

代码语言:javascript
复制
[root@test ~]$ cp -frp /etc/ssh/  /home/ssh_bak
[root@test ~]$ ll /home/ssh_bak/
total 604
-rw-r--r-- 1 root root     581843 Apr 11  2018 moduli
-rw-r--r-- 1 root root       2276 Apr 11  2018 ssh_config
-rw------- 1 root root       3907 Apr 11  2018 sshd_config
-rw-r----- 1 root ssh_keys    227 Feb 27  2018 ssh_host_ecdsa_key
-rw-r--r-- 1 root root        162 Feb 27  2018 ssh_host_ecdsa_key.pub
-rw-r----- 1 root ssh_keys    387 Feb 27  2018 ssh_host_ed25519_key
-rw-r--r-- 1 root root         82 Feb 27  2018 ssh_host_ed25519_key.pub
-rw-r----- 1 root ssh_keys   1675 Feb 27  2018 ssh_host_rsa_key
-rw-r--r-- 1 root root        382 Feb 27  2018 ssh_host_rsa_key.pub

7.停止ssh服务并删除/etc/ssh 目录

代码语言:javascript
复制
#这里注意,千万不要断开ssh连接
[root@test ~]$ systemctl stop sshd
[root@test ~]$ rm -rf /etc/ssh/

8.解压、编译、安装

代码语言:javascript
复制
[root@test ~]$ cd /usr/local/src/              #进入源码包所在目录
[root@test src]$ tar zxvf openssh-8.2p1.tar.gz #解压
[root@test src]$ cd openssh-8.2p1              #进入解压后的目录
[root@test openssh-8.2p1]$ ./configure --prefix=/usr --sysconfdir=/etc/ssh #配置相关信息,等待配置完成,需要一点时间
[root@test openssh-8.2p1]$ make                #开始编译,等待编译结束,需要一点时间
[root@test openssh-8.2p1]$ make install        #开始安装

9.修改权限

代码语言:javascript
复制
[root@test ~]$ chmod 0600 /etc/ssh/ssh_host_rsa_key
[root@test ~]$ chmod 0600 /etc/ssh/ssh_host_ecdsa_key
[root@test ~]$ chmod 0600 /etc/ssh/ssh_host_ed25519_key

10.拷贝启动文件,有提示覆盖即可

代码语言:javascript
复制
[root@test ~]$ cp /usr/local/src/openssh-8.2p1/contrib/redhat/sshd.init /etc/init.d/sshd

11.修改sshd配置文件

代码语言:javascript
复制
[root@test ~]$ vim /etc/ssh/sshd_config
PermitRootLogin yes                 #改为yes允许root登陆
PasswordAuthentication yes          #改为yes允许密码验证
[root@test ~]$ systemctl daemon-reload #重新加载服务配置文件
[root@test ~]$ systemctl start sshd #启动sshd服务
[root@test ~]$ systemctl enable sshd#开机自启动

12.测试ssh连接

代码语言:javascript
复制
#保持当前ssh连接窗口不要关闭,重新开启一个ssh窗口
[root@mylinux]$ ssh root@192.168.110.113
root@192.168.110.113's password: 
Last login: Thu Jul  9 19:09:16 2020 from 10.100.7.210
[root@test ~]$ ip addr | grep eth0 | grep inet
    inet 192.168.110.113/24 brd 192.168.110.255 scope global noprefixroute eth0
#可见登陆成功

13.查看当前ssh版本

代码语言:javascript
复制
[root@test ~]$ ssh -V
OpenSSH_8.2p1, OpenSSL 1.0.2k-fips  26 Jan 2017
#版本为8.2,升级成功
  • 结束
    • telnet 和 xinetd服务请根据自己的情况处理,保留或者关闭。
    • 作者为测试环境操作,生产环境也可参照此方案,但要谨慎操作。
    • 如有任何问题或疑问可在下方留言告知。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.启用telnet服务
  • 2.启动服务并设置为开机自启动
  • 3.解决密码错误
  • 4.测试telnet登陆
  • 5.安装依赖环境
  • 6.备份ssh目录
  • 7.停止ssh服务并删除/etc/ssh 目录
  • 8.解压、编译、安装
  • 9.修改权限
  • 10.拷贝启动文件,有提示覆盖即可
  • 11.修改sshd配置文件
  • 12.测试ssh连接
  • 13.查看当前ssh版本
相关产品与服务
脆弱性检测服务
脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档