升级OpenSSH前,请确认已安装好OpenSSL,不然升级不成功。如何卸载与安装OpenSSL可在Linux栏目中查看文章。
移除旧版本(需要注意,移除之后,不能退出当前终端,若退出,只能通过telnet连了,又或者是虚拟机的话可以从后台系统登录)
mv /etc/ssh /etc/ssh.old
解压
tar -zxvf openssh-7.1p2.tar.gz
进入目录
cd openssh-7.1p2
创建安装目录
mkdir /usr/local/openssh
选择安装目录(prefix 是安装目录)
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-openssl-includes=/usr/local/openssl/include --with-zlib=/usr/local/zlib --without-hardening --with-zlib=/usr/local/zlib --with-pam --with-md5-passwords --mandir=/usr/share/man
若出现找不到PAM文件的解决方案
按照操作系统名称选择命令安装PAM模块,正常来说执行完就安装成功:
Debian/Ubuntu:sudo apt-get install libpam0g-dev
CentOS/RHEL:sudo yum install gcc pam-devel
如果执行“sudo apt-get install libpam0g-dev”命令显示:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 50%
。。。
您也许需要运行“apt-get -f install”来修正上面的错误。
下列软件包有未满足的依赖关系:
。。。
E: 不能满足依赖关系。不妨试一下 -f 选项。
解决方案为执行以下两条命令修复缺少的依赖:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/*.deb
sudo apt-get -f install
然后再次执行选择安装目录命令:
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-openssl-includes=/usr/local/openssl/include --with-zlib=/usr/local/zlib --without-hardening --with-zlib=/usr/local/zlib --with-pam --with-md5-passwords --mandir=/usr/share/man
编译
make
安装
make install
替换相关命令
cp -arp /usr/local/openssh/bin/* /usr/bin/
重启SSHD服务
service sshd restart
查看openssl版本
openssl version
查看ssh版本
#ssh -V