准备相关的包
openssl相关包下载:http://www.openssl.org/source/
pam相关包下载:http://pkgs.org/centos-6/centos-x86_64/
zlib包下载: http://zlib.net/
一、简单版(centos 7)
1、下载最新版openssh,链接如下
http://www.openssh.com/portable.html
备份以下文件:
/etc/ssh/sshd_config
/etc/pam.d/sshd
2、安装依赖包
yum update -y
yum install -y gcc gcc-c++ zlib-devel openssl-devel pam* pam-devel*
3、安装软件包
tar -zxf openssh-8.8p1.tar.gz #解压tar文件
cd openssh-8.8p1
./configure #检测环境是否满足
make #编译
make install #安装
service sshd restart #重启
二、复杂版
1、升级zlib
# tar -zxvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11
#CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib
#make && make install
2、更新pam的rpm包。不然configure openssh的时候会报错
yum install pam* pam-devel*
注意:以下安装时,请务必再开一个SSH窗口连接所需要升级的服务器,避免ssh升级失败后,无法连接服务器。
3、编译安装openssl
删除旧版本
#rpm -e `rpm -qa | grep openssl` --allmatches --nodeps
# tar -zxvf openssl-1.0.2l.tar.gz
# cd openssl-1.0.2l
#./config -fPIC --prefix=/usr/local/openssl/ --openssldir=/usr/local/openssl/ shared zlib-dynamic enable-camelia
#make && make install
# mv /usr/bin/openssl /usr/bin/openssl.old
# mv /usr/include/openssl /usr/include/openssl.old
# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
#ldconfig -v
#openssl version
查看openssl版本显示OpenSSL 1.0.2l 25 May 2017
解决升级openssl后yum问题:
#cd openssl-1.0.2l
#cp libssl.so.1.0.0 libcrypto.so.1.0.0 /usr/lib64/
# ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so
# ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10
# ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so
# ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
4、编译安装openssh
删除旧版本
# rpm -e `rpm -qa | grep openssh` --allmatches --nodeps 或 yum remove openssh
# tar -zxvf openssh-7.5p1.tar.gz
# cd openssh-7.5p1
# ./configure --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords --with-pam --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh
#make && make install
#ssh -V
复制启动脚本到/etc/init.d
# cp /home/openssh-xxx/contrib/redhat/sshd.init /etc/init.d/sshd
加入开机自启
# chkconfig --add sshd
开启root登录:
vi /etc/ssh/sshd_config
把PermitRootLogin去掉#后,改为:PermitRootLogin yes
5、直接启动ssh服务。
service sshd start