升级前版本:
openssl-1.0.1e-48.el6_8.1.x86_64
openssh-5.3p1-118.1.el6_8.x86_64
升级后版本:
OpenSSL 1.0.2j
OpenSSH 7.3p1

Step-1:安装相关依赖包

yum install zlib*
yum install gcc
yum install make

Step-2:如果是最小化安装后升级,得更新一些基础东西,不然升级会遇到问题

yum -y install wget openssh-clients openssl-devel

Step-3:官网下载好这两个包放在/tmp目录下

wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz
wget https://openssl.org/source/openssl-1.0.2j.tar.gz

Step-4:为确保升级过程没有意外导致ssh会话断开,首先打开telnet服务(使用telnet服务需关闭防火墙或者打开默认端口23)

yum install telnet-server xinetd
sed -i '/disable/s/yes/no/g' /etc/xinetd.d/telnet
service xinetd restart

Step-5:此时换telnet登陆服务器执行后续命令

#备份旧的ssh配置和用户家目录的相关ssh文件
cp -raf /etc/ssh /etc/ssh.old
cp -raf /etc/init.d/sshd /etc/init.d/sshd.old
cp -raf /root/.ssh/ /root/.ssh.old
r_list=`cat /etc/passwd | awk -F ":" '{if($3>=500) print $6}'`
for i in $r_list;do
cp -raf $i/.ssh/ $i/.ssh.old
done

Step-6:删掉旧的openssl和openssh

rpm -qa  |  grep  openssh  |  xargs rpm -e --nodeps
rpm -qa | grep openssl | xargs rpm -e --nodeps

Step-7:安装OpenSSL

tar zxf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j
./config --prefix=/usr \
--openssldir=/etc/ssl \
--libdir=lib \
--shared \
zlib-dynamic
make depend && make
make MANDIR=/usr/share/man MANSUFFIX=ssl install &&
install -dv -m755 /usr/share/doc/openssl-1.0.2j &&
cp -vfr doc/* /usr/share/doc/openssl-1.0.2j
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
ln -s /usr/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.10
ln -s /usr/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.10
ln -s /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.10 openssl version
#安装完成,应当输出OpenSSL 1.0.2j 26 Sep 2016

Step-8:安装OpenSSH

cd /tmp/
tar zxf openssh-7.3p1.tar.gz
cd openssh-7.3p1 #隐藏版本号配置
sed -i '/SSH_VERSION/s/OpenSSH_7.3/Goodbye/g' version.h
sed -i '/SSH_PORTABLE/s/p1/./g' version.h echo "/usr/include/openssl/">>/etc/ld.so.conf
ldconfig
./configure --prefix=/usr \
--sysconfdir=/etc/ssh \
--with-md5-passwords \
--with-ssl-dir=/etc/ssl/ \
--with-privsep-path=/var/empty/sshd
make
make install &&
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.3p1 &&
install -v -m644 INSTALL LICENCE OVERVIEW README* \
/usr/share/doc/openssh-7.3p1 cp -raf /etc/init.d/sshd.old /etc/init.d/sshd
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.new
cp -raf /etc/ssh.old/sshd_config /etc/ssh/sshd_config
sed -i 's/GSSAPI/#GSSAPI/g' /etc/ssh/sshd_config
sed -i 's/UsePAM/#UsePAM/g' /etc/ssh/sshd_config
service sshd restart

Step-9:将sshd设置为开机自启

chkconfig --list sshd
#如果没有的话执行:chkconfig --add sshd
chkconfig sshd on

Step-10:测试SSH是否可以正常使用,以10.10.13.35为例(ssh 10.10.13.35),如果出现密码不正确的提示,则按照如下说明操作,

  1. vi /etc/ssh/sshd_config
  2. 将“PermitRootLogin yes” 启用

Step-11:测试sftp是否可以正常使用,如果出现“ssh可以连接但sftp不可以连接”问题时,尝试用如下解决方案进行处理

  1. vim /etc/ssh/sshd_config
  2. 如下修改配置项:
#override default of no subsystems
#Subsystem sftp /usr/local/openssh/libexec/sftp-server
Subsystem sftp internal-sftp
  1. 重启sshd服务:
service sshd restart

CentOS6.5下面OpenSSH低版本升级至7.3的更多相关文章

  1. xcode7/ios9中 低版本app运行时,屏幕上下出现黑边的问题

    xcode从低版本升级至 7.0或更高版本后,某些低版本app再次编译运行后,发现app在设备上运行时,会在上端和底部 出现黑边的现象.这导致app的展示界面跟缩水了一样,变得十分丑陋. 对于这一问题 ...

  2. hyperscan在低版本系统应用问题

    编译环境:centos6.3 32位/64位 由于hyperscan使用许多C++11特性,在低版本系统gcc版本不能编译.后来发现在runtime时也就是hs_scan时只需要依赖libhs_run ...

  3. centos6.5升级openssh至7.9p1

    环境说明系统环境:centos 6.5 x64 openssh-5.3p1升级原因:低版本openssh存在漏洞升级目标:openssh-7.9p1 检查环境官方文档中提到的先决条件openssh安装 ...

  4. xcode低版本调试高版本真机系统

    低版本xcode调试本真机高版本系统 //打开此路径把最新的文件拷贝到这里就可以了 /Applications/Xcode.app/Contents/Developer/Platforms/iPhon ...

  5. 低版本GCC程序向高版本移植的兼容性问题

    将低版本gcc编译过的程序移植到高版本GCC时, 可能会出现一些兼容性问题. 原因是, 为了适应新的标准,一些旧的语法规则被废弃了. 关于这方面的一些具体资料可从该处查询. 这里只是自己遇到的其中一个 ...

  6. android中导入低版本project可能会遇到的编译问题(转自: Victor@Beijing)

    使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题. (1)Unable to resolve target 'android-5' 因为本机中现在使用的是2.2的SDK ...

  7. Sql Server本地高版本备份数据备份至远程低版本数据库方法

    想要将Sqlserver高版本备份的数据还原到低版本SqlServer2008R2上去,但是这在SqlServer中是没法直接还原数据库的,通过以下方法可以顺利还原. 通过高版本生成sql脚本在低版本 ...

  8. 让低版本的 Android 项目显示出 Material 风格的点击效果

    每天都被不同的需求纠缠的生活是幸福而又不幸的,这不我们家亲爱的设计师们又让我们在低版本的 Android 平台上实现一下类似于 Material Design 的点击效果. 虽然大家都知道 Mater ...

  9. android 在使用ViewAnimationUtils.createCircularReveal()无法兼容低版本的情况下,另行实现圆形scale动画

    ViewAnimationUtils.createCircularReveal()的简介: ViewAnimationUtils.createCircularReveal()是安卓5.0才引入的,快速 ...

随机推荐

  1. Codeforces 488D Strip (set+DP)

    D. Strip time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  2. 重读ORB_SLAM之LocalMapping线程难点

    1. 认清几个锁与布尔参数 线程的通信与相互影响在ORB比较复杂,需要好好缕清思路. 1.1 mbStopRequested,由RequestStop函数设定,主要是在回环线程里,在运行全局优化时,以 ...

  3. Java开发中的23种设计模式详解(1)创建型

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  4. django-celery beat报错 error pid

    最近在用django-celery添加定时任务,测试时启动过一次Beat,beat按理说是只能启动一个的但是不服务器都重启过了还是提示已有进程在运行. ERROR: Pidfile (celerybe ...

  5. picker多级选择器的使用————小程序

    picker多级选择器的使用----小程序 picker是选择器来着,既然选择了,就希望可以获取选择的数据. index.html <view>picker获取数据</view> ...

  6. 虚拟机复制的linux无法联网,解决Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.

    一.问题描述 OS:centos 原因是拷贝虚拟机造成的. 使用vmworkstation打开虚拟机的时候,要选择copy而非move. 二.解决描述 网络上解决步骤各异,其实就一句话.只要保证vmw ...

  7. linux随笔-01

    认识linux 开源共享精神 低风险 高品质 低成本 更透明 开源软件的特点 使用自由.修改自由.传播自由.收费自由以及创建衍生品的自由 常见的开源许可协议 GNU GPL(GNU General P ...

  8. C#中using语句是什么意思

    使用using语句最终生成的其实是一个try, finally代码块,在finally代码块里释放资源.要求是:为 using 语句提供的对象必须实现 IDisposable 接口.此接口提供了 Di ...

  9. 【leetcode】984. String Without AAA or BBB

    题目如下: Given two integers A and B, return any string S such that: S has length A + B and contains exa ...

  10. mac终端命令--常用快捷键

    Ctrl + c        取消当前行输入的命令,进入下一行.或者中止一个错误的或者发疯的命令 Ctrl + a        光标移动到行首(Ahead of line),相当于通常的Home ...