CentOS7.2本地升级openSSH7.9

一、背景:
因老版存在很多漏洞,因此需要升级到最新版本,服务器所在区域无法上网,需要离线安装所有软件和依赖包;
相关资源:
https://download.csdn.net/download/gz_jax/11128971
(里面缺少gcc-c++包,自行下载添加)

二、升级openssh7.9
所有的依赖包上传服务器(我是放在/home/soft目录下)
1、先安装telnet-server (防止openssh升级后无法远程登入)

#rpm -ivh telnet-server-0.17-48.el6.x86_64.rpm

2、安装xinetd

#rpm -ivh xinetd-2.3.14-40.el6.x86_64.rpm
将telnet在xinetd的配置中启用
#vi /etc/xinetd.d/telnet
#disable         = no     # 启用telnet
#service xinetd start   # 启动telnet  
测试telnet是否可用。

3、将所有相关依赖强制安装

cd /home/soft
rpm -ivh  *.rpm  --nodeps --force

4、升级zlib

#cd /home/soft   
#tar -zxvf zlib-1.2.11.tar.gz                                                         
#cd zlib-1.2.11                                                                       
#./configure --prefix=/usr/local/zlib-1.2.11 -share                                    
#make                                                                                 
#make test   #如果有报错,一定要查明原因解决以免影响后续安装
#make install

zlib安装成功如下:
在这里插入图片描述
安装成功之后:

配置库文件搜索路径
#vi /etc/ld.so.conf
在最后加入/usr/local/zlib-1.2.11/lib


刷新缓存文件/etc/ld.so.cache
#ldconfig –v


# ln -s /usr/local/zlib-1.2.11 /usr/local/zlib

5、升级openssl

#cd/home/soft   
#tar zxvf openssl-1.0.2r.tar.gz
#cd openssl-1.0.2r
#./config sharedzlib-dynamic --prefix=/usr/local/openssl-1.0.2r --with-zlib-lib=/usr/local/zlib-1.2.11/lib --with-zlib-include=/usr/local/zlib-1.2.11/include
#make
#make test (这一步是进行 SSL 加密协议的完整测试,如果出现错误就要一定先找出原因,否则一味继续可能导致 SSH 不能使用!)
#make install
配置库文件搜索路径
#vi/etc/ld.so.conf      
在最后加入/usr/local/openssl-1.0.2r/lib  


刷新缓存文件/etc/ld.so.cache
#ldconfig –v


#ln -s /usr/local/openssl-1.0.2r/usr/local/openssl


配置环境变更
vi /etc/profile
在最后加入以下两行
PATH=/usr/local/openssl/bin:$PATH
export PATH


让配置生效
# source/etc/profile

查看openssl的版本号,以验证是否安装正确,成功如下图:
在这里插入图片描述
5、升级openssh

停止OpenSSH服务
# systemctl stop sshd.service


查询并卸载openssh
# rpm -qa |grep openssh
openssh-server-6.6.1p1-22.el7.x86_64
openssh-clients-6.6.1p1-22.el7.x86_64
openssh-6.6.1p1-22.el7.x86_64


# rpm -eopenssh-6.6.1p1-22.el7.x86_64 –nodeps
# rpm -eopenssh-clients-6.6.1p1-22.el7.x86_64 –nodeps
# rpm -eopenssh-server-6.6.1p1-22.el7.x86_64


正式安装
#cd /home/soft
# tar zxvf openssh-7.9p1.tar.gz
#cd openssh-7.9p1
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib
#make
#make install


将sshd加入启动服务:
进入ssh安装解压目录
#cp ./contrib/redhat/sshd.init/etc/init.d/sshd
#chmod +x/etc/init.d/sshd
# chkconfigsshd on


最后,启动 SSH 服务使修改生效:
# systemct start sshd.service

确认一下当前的 OpenSSH 和 OpenSSL 是否正确:

# ssh -V

如果看到了新的版本号就说明升级成功,如下:
在这里插入图片描述
到这里算是升级完毕。

三、升级之后遇到的坑。
1、root无法远程登入,一直被拒绝。
解决方法:

开始提到过升级之后可能出现无法远程登入问题。
先用telnet登入系统
#vim /etc/ssh/sshd_config
找到 PermitRootLogin 取消注释
#PermitRootLogin yes

2、如果上面的方法还是解决不了,telnet登入之后查看日志消息

#vim /var/log/secure

如果出现如下情况日志
在这里插入图片描述
解决方法:

#vim /etc/pam.d/sshd
更改配置如下(更改前备份一下)

#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin

有其它问题欢迎提问。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值