博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos6.8/6.9 升级openssh的升级openssh-7.5p1.tar.gz
阅读量:6272 次
发布时间:2019-06-22

本文共 4624 字,大约阅读时间需要 15 分钟。

一、准备工作

上来先查一下iptables的状态和selinux的状态
先检查一下xinetd之前有没有
service xinetd status
[root@master ~]# chkconfig --list |grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@master ~]# chkconfig iptables off
[root@master ~]# chkconfig --list |grep iptables
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@master ~]# service iptables status
[root@master ~]# service iptables stop
[root@master ~]# vim /etc/selinux/config
7 SELINUX=disabled
[root@master ~]# setenforce 0

二、安装telnet服务
1.安装软件
# yum install gcc pam-devel zlib-devel
# yum install telnet-server* telnet
# yum install pam-devel

2.启用telnet服务

# vi /etc/xinetd.d/telnet
将其中disable字段的yes改为no以启用telnet服务
在结尾增加
# vi /etc/securetty
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8
在此时使用终端用telnet连接上主机!!!!!!!
# cp -rp /etc/securetty /etc/securetty.old #允许root用户通过telnet登录
# service xinetd start #启动telnet服务
# chkconfig xinetd on #使telnet服务开机启动,避免升级过程中服务器意外重启后无法远程登录系统
chkconfig --list | grep xinetd
xinetd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@master yum.repos.d]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
3.测试telnet能否正常登入系统
这时连接上telnet以防后续步骤出现问题
telnet出现问题连接不上需要做以下操作

这时开启另外一个标签使用telnet 连接23号端口

CentOS release 6.8 (Final)
Kernel 2.6.32-642.el6.x86_64 on an x86_64

login: root

Password:
Last login: Tue Apr 24 10:53:15 from 192.168.37.1
[root@master ~]#
[root@master ~]#
确保能够登录成功并且不要关闭这个telnet窗口留着当备用

 

三、升级OpenSSH

1.备份当前openssh
mv /etc/ssh /etc/ssh.old
mv /etc/init.d/sshd /etc/init.d/sshd.old

2.卸载当前openssh

#rpm -qa | grep openssh
openssh-askpass-5.3p1-117.el6.x86_64
openssh-5.3p1-117.el6.x86_64
openssh-clients-5.3p1-117.el6.x86_64
openssh-server-5.3p1-117.el6.x86_64
# rpm -e --nodeps openssh-5.3p1-117.el6.x86_64
# rpm -e --nodeps openssh-server-5.3p1-117.el6.x86_64

注意:卸载过程中如果出现以下错误

!!!#####error reading information on service sshd: No such file or directory
error: %preun(openssh-server-5.3p1-117.el6.x86_64) scriptlet failed, exit status 1 报这个错就用下面这条命令

# rpm -e --noscripts openssh-server-5.3p1-117.el6.x86_64

# rpm -e --nodeps openssh-clients-5.3p1-117.el6.x86_64

# rpm -e --nodeps openssh-askpass-5.3p1-117.el6.x86_64
# rpm -qa | grep openssh

3.openssh安装前环境配置
# install -v -m700 -d /var/lib/sshd
# chown -v root:sys /var/lib/sshd
当前系统sshd用户已经存在的话以下不用操作
# groupadd -g 50 sshd
# useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd

4.解压openssh_7.5p1源码并编译安装

# wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
# tar -zxvf openssh-7.5p1.tar.gz
# cd openssh-7.5p1
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-openssl-includes=/usr --with-privsep-path=/var/lib/sshd

######

PAM is enabled. You may need to install a PAM control file
for sshd, otherwise password authentication may fail.
Example PAM control files can be found in the contrib/
subdirectory
这里不用管

# make

# make install
make && make install

######

返回这些信息
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
/usr/sbin/sshd -t -f /etc/ssh/sshd_config
返回这些信息

5.openssh安装后环境配置
# 在openssh编译目录执行如下命令
# install -v -m755 contrib/ssh-copy-id /usr/bin
# install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
# install -v -m755 -d /usr/share/doc/openssh-7.5p1
# install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.5p1
# ssh -V #验证是否升级成功

6.启用OpenSSH服务

# 在openssh编译目录执行如下目录
# echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config #允许root用户通过ssh登录
# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
# chmod +x /etc/init.d/sshd
# chkconfig --add sshd
# chkconfig sshd on
# chkconfig --list sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

7.恢复原来的配置信息

# cp -rp /etc/securetty /etc/securetty.new
# cp -rp /etc/securetty.old /etc/securetty
如需还原之前的ssh配置信息,可直接删除升级后的配置信息,恢复备份。
# cp -rp /etc/ssh /etc/ssh.new
# rm -rf /etc/ssh
# cp -rp /etc/ssh.old /etc/ssh

# vim /etc/ssh/ssh_config

50 #GSSAPIAuthentication yes #注释掉这一行
确保安全可以/GSS搜索注释所有带GSS的
# vim /etc/ssh/sshd_config
# 97 UsePAM no #去掉注释然后把参数改为no
##注释掉下面三个参数
81 #GSSAPIAuthentication yes
83 #GSSAPICleanupCredentials yes
PermitRootLogin yes 这个去掉注释启用并改成yes

####需要考虑到防火墙重启会挡住端口要关闭防火墙相关的东西

重启一下sshd试试
# service sshd restart

!!!!!!!!!这里重启系统
[root@master ~]# reboot

这里重新连接服务器

一个ssh的连接 #注意端口号还是以前
一个telnet的连接 端口号是23

到这里就结束了
然后进行以下善后
# vi /etc/xinetd.d/telnet
将其中disable字段的改为yes关闭telnet功能
service xinetd stop
chkconfig xinetd off
在结尾中删除以下内容
# vi /etc/securetty
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8

以前如果是开启防火墙的把防火墙开启

chkconfig iptables on
service iptables start

转载于:https://www.cnblogs.com/n64wnc/p/8947058.html

你可能感兴趣的文章
[Android Pro] Android权限设置android.permission完整列表
查看>>
如何对抗硬件断点--- 调试寄存器
查看>>
mybatis学习
查看>>
从不同层面看cocos2d-x
查看>>
Struts2技术详解
查看>>
MFC应用程序向导生成的文件
查看>>
Oracle体系结构之oracle密码文件管理
查看>>
【leetcode】Remove Element (easy)
查看>>
mysql多表查询及其 group by 组内排序
查看>>
alsa的snd_pcm_readi()函数和snd_pcm_writei()
查看>>
Android学习网站推荐(转)
查看>>
嵌入式根文件系统的移植和制作详解
查看>>
MEF部件的生命周期(PartCreationPolicy)
查看>>
LCD的接口类型详解
查看>>
nginx 基础文档
查看>>
LintCode: Unique Characters
查看>>
Jackson序列化和反序列化Json数据完整示例
查看>>
.net 中的DllImport
查看>>
nyoj 517 最小公倍数 【java睑板】
查看>>
include与jsp:include区别
查看>>