因为RedHat6.5用的ssh版本过低,存在安全漏洞,需进行升级,内网只能离线升级。参考了网上的资料,各种包东拼西凑,终于成功了。记录一下,同时也感谢那些秉承互联网分享精神的大佬,比起那些个下载个包都要钱的,你们就是互联网的一股清流。
注意事项:
- 先升级openssl,后升级openssh
- 升级期间注意打开多个ssh窗口,以防断开后不能连接。最好先安装好telnet-server、xinetd、vsftpd 确保升级过程中ssh及ftp能正常连接及上传文件
- 确保gcc命令,zlib库等都已经安装。
下载地址:
链接:https://pan.baidu.com/s/1yXFRqo-n7ZY9H0OmSzpINg
提取码:sshd
1、目前版本
操作系统: red hat 6.4
OpenSSH_5.3p1, OpenSSL 1.0.0
2、离线安装gcc
解压gcc,进入gcc目录执行./install-gcc.sh命令,安装完成后查看gcc版本命令:gcc -v
注:解压后需要付执行权限。
3、解压安装zlib
87 tar zxvf zlib-1.2.11.tar.gz
88 ls
89 cd zlib-1.2.11
90 ls
91 ./configure
92 make && make install
4、升级openssl
cd openssl-1.0.2j
60 ls
61 ./config --prefix=/usr/local/openssl --shared
62 make && make install
63 ls /usr/local/openssl/
64 vi /etc/ld.so.conf
-
在/etc/ld.so.conf文件的最后面,添加如下内容
vi /etc/ld.so.conf /usr/local/openssl/lib
-
使ld.so.conf配置文件生效
ldconfig
-
添加OPESSL的环境变量
在/etc目录下的profile文件的最后一行,添加:
vi /etc/profile export OPENSSL=/usr/local/openssl/bin export PATH=$OPENSSL:$PATH:$HOME/bin
-
使环境生效
source /etc/profile
-
查看openssl版本号(确保版本号为刚刚升级的版本)
# openssl version OpenSSL 1.0.2j 26 Sep 2016
- 5、升级openssh
-
创建配置文件备份目录
mkdir /etc/sshbak
-
备份原来的ssh配置文件
mv /etc/ssh/* /etc/sshbak
-
备份原来的ssh启用脚本
mv /etc/init.d/sshd /etc/init.d/sshdbak
- 96 cd openssh-7.9p1
97 ls
98 ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl
99 make && make install
100 cp -a contrib/redhat/sshd.init /etc/init.d/sshd
101 ls /etc/ssh
102 vim /etc/ssh/sshd_config -
开启允许root管理员登录
修改配置文件:
vi /etc/ssh/sshd_config 找到#PermitRootLogin prohibit-password 在下面一行添加PermitRootLogin yes PermitRootLogin yes
-
复制启动脚本到/etc/init.d
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
-
重启sshd服务
service sshd restart
-
查看ssh版本(确保版本为升级的版本)
# ssh -V OpenSSH_7.9p1, OpenSSL 1.0.2q 20 Nov 2018