1、解压安装openssl包:(不能卸载openssl,否则会影响系统的ssl加密库文件,除非你可以做两个软连接libcryto和libssl)
# tar -zxvf openssl-1.0.1.tar.gz
# cd openssl-1.0.1
#./config -fPIC threads shared
# make
# make test
# make install
# mv /usr/bin/openssl /usr/bin/openssl.OFF
# mv /usr/include/openssl /usr/include/openssl.OFF
//该步骤可能提示无文件,忽略即可
# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
# ln -s /usr/local/ssl/include/openssl /usr/include/openssl
//移走原先系统自带的openssl,将自己编译产生的新文件进行链接。
2、配置库文件搜索路径
# chmod 755 /usr/local/ssl
# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
# /sbin/ldconfig -v
# openssl version -a
OpenSSL 1.0.1 14 Mar 2012
built on: Fri Mar 16 17:14:50 CST 2012
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/local/ssl"
3、备份启动脚本
# cp /etc/init.d/sshd /root/
/#1、停止SSHD服务
# /sbin/service sshd stop
4、卸载系统里原有Openssh
# rpm –qa|grep openssh //查询系统原安装的openssh包,全部卸载。
# rpm -e openssh --nodeps
# rpm -e openssh-server --nodeps
# rpm -e openssh-clients --nodeps
# rpm -e openssh-askpass
或rpm -e --nodeps `rpm -qa |grepopenssh`
#4、解压安装zlib包:
# tar -jxvf zlib-1.2.5.tar.bz2 //首先安装zlib库,否则会报zlib.c错误无法进行
# cd zlib-1.2.5
# ./configure
# make&&make install
5、解压安装openssh包:
先将将/etc/ssh的文件夹备份:
# mv /etc/ssh /etc/ssh_bak
# tar -zxvf openssh-6.6p1.tar.gz
# cd openssh-6.6p1
#./configure --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man --with-pam
# make
# make install
6、启动服务
# cp -p contrib/redhat/sshd.init /etc/init.d/sshd
(suse:cpcontrib/suse/rc.sshd /etc/init.d/sshd)
# chmod +x /etc/init.d/sshd
# chkconfig --add sshd
# cp sshd_config /etc/ssh/sshd_config (如提示覆盖,yes回车)
# cp sshd /usr/sbin/sshd (如提示覆盖,yes回车)
# cp ssh-keygen /usr/bin/ssh-keygen
(redhat:cpssh-keygen /usr/bin/ssh-keygen)
验证是否service sshd start成功
service sshd start
service sshd restart
ssh -V //如果看到了新的版本号就没问题啦!如果没有ssh这条命令,执行
(redhat、suse:ln -s /usr/local/bin/ssh /usr/bin/ssh)
升级后普通用户无法相互ssh登陆
提示 ssh: symbol lookup error: ssh: undefined symbol: EVP_aes_128_ctr
在网上查了好久终于解决了:
解决方法如下:
给相应配置文件赋权,使用root用户执行如下三个命令即可
[[email protected] ~]# chmod o+rx /usr/bin/openssl
[[email protected] ~]# chmod o+rx /usr/include/openssl
[[email protected] ~]# chmod o+rx /usr/local/ssl -R