Openssh 升级

  1. 检查 安装telnet-server服务(防止升级异常,无法远程登录)

yum源可用的情况下优先使用yum安装方式

yum install telnet-server (yum可以自动处理依赖 )

手动安装-下载软件包centos 6 版本 (centos7不通用)

(wget http://mirror.centos.org/centos/6/os/x86_64/Packages/telnet-server-0.17-48.el6.x86_64.rpm)

(wget http://www.rpmfind.net/linux/centos/6.10/os/x86_64/Packages/xinetd-2.3.14-40.el6.x86_64.rpm

rpm -ivh xinetd-2.3.14-40.el6.x86_64.rpm

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

 centos7版本(暂时没遇到缺失xinetd的情况,所以直接安装telnet即可。若提示缺失xinetd ,http://www.rpmfind.net/linux/centos/6.10/os/x86_64/Packages下载新版并安装)

(wget http://mirror.centos.org/centos/7/os/x86_64/Packages/telnet-server-0.17-64.el7.x86_64.rpm  )

 rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm

修改/etc/xinetd.d/telnet文件

disable = no

加pts 使得telnet可以root登录

vi /etc/securetty   添加如下:

pts/0

pts/1

启动或重启xinetd服务

#service xinetd restart

telnet服务器验证是否可以登录( Secure CRT选择telnet协议,prot:23 测试root是否可以登录 )

 

2、安装最新的zlib (最新) (很多服务器ssl都升级过了,检查一下,升级过的可以省略2.3步)

先到http://www.gzip.org/zlib/下载最新的zlib-xxxx.tar.gz安装包

#tar –zxvf zlib-1.2.8.tar.gz

进入解压目录执行

#./configure --prefix=/usr/local/zlib

#make

#make install

 

3、升级openssl(最新)

#tar zxvf openssl-xxx.tar.gz

进入解压目录执行

#./config --shared zlib

一定记得加上--shared选项, 否则openssh编译的时候会找不到新安装的openssl的library, 会报错: openssl的 header和library版本不匹配

#make

#make test

(这一步很重要哦!是进行 SSL 加密协议的完整测试,如果出现错误就要一定先找出哪里的原因,否则一味继续,可能最终导致 SSH 不能使用,后果很严重的!)

#make install

安装完成后查看版本

/usr/local/ssl/bin/openssl version -a

备份原版本文件

#mv /usr/bin/openssl /usr/bin/openssl_bak

#ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf

#配置库文件搜索路径,如果不配置安装Openssh时报错openssl 版本没有找到,头文件没有找到

#ldconfig -v

-v选项,输出正在扫描的目录及搜索到的共享库,执行结束后,ldconfig将刷新缓存文件/etc/ld.so.cache.

再次查看版本

#openssl version -a

4、升级openssh至8.0版本

下载地址:

http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/

wget http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz

备份原配置:

cp -r /etc/ssh /etc/ssh_bak

删除原版本

rpm -e openssh-clients-5.3p1-124.el6_10.x86_64 --nodeps

rpm -e openssh-server-5.3p1-124.el6_10.x86_64 --nodeps

rpm -e openssh-5.3p1-124.el6_10.x86_64 --nodeps

解压8.0 版本ssh 编译安装:

./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl

make

make install

在解压的目录下,

cd /tmp/openssh-8.0.p1/contrib/redhat

cp sshd.init /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

chkconfig --add sshd

允许ssh root登录,

vi /etc/ssh/sshd_config 添加一行

PermitRootLogin  yes

测试ssh功能是否正常

service sshd restart

(这一步的逻辑应该是先停止再启动,所以就会有一个问题——ssh停止之后就会直接断开,从而无法执行启动命令,导致ssh处于关闭状态。所以应该telnet远程连接之后执行此命令,然后测试ssh是否正常。)

 

5、关闭telnet-server服务

修改 /etc/xinetd.d/telnet文件

disable = yes

 

关闭 xinetd服务

#service xinetd stop


版权声明:本文为qq_44732067原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。