操作系统:fedora16
升级文件:openssh-7.5p1.tar.gz
1、升级openssl,因为fedora16自带的openssl为1.0.0版本,openssh7.5需要版本号>1.0.0
注意:不要升级到最新的1.1版本,openssh7.5需要小于这个版本的openssl
版本要求可以查看openssh7.5
2、下载了openssl-1.0.1e.tar.gz版本
3、./config shared --prefix=/usr/local/openssl-1.0.1e
此处要编译动态库,使用shared参数
make -j4
make install
4、增加动态库加载路径
vi /etc/ld.so.conf.d/openssl-1.0.1e.conf
写入内容/usr/local/openssl-1.0.1e/lib
5、执行ldconfig,使得路径生效
6、开始升级openssh,./configure --prefix=/usr/local/openssh-7.5 --with-ssl-dir=/usr/local/openssl-1.0.1e
如果提示error: *** zlib.h missing - please install first or check config.log ***,就要按照zlib-devel
make -j4
make install
7、 将服务启动/usr/sbin/sshd文件软连接到新编译的文件
cd /usr/sbin
mv sshd sshd.old
ln -s /usr/local/openssh-7.5/sbin/sshd sshd
8、重启sshd服务
注意7.5默认是不允许root登录的
如果要允许root登录,重启之前
vi/usr/local/openssh-7.5/etc/sshd_config
增加内容PermitRootLogin yes
然后重启服务,service sshd restart
9、验证sshd连接是否可用
后记:
本想把/usr/local/openssh-7.5和/usr/local/openssl-1.0.1e 两个目录打包好,直接放到另外的fedora16机器上使用,
设置了动态库路径和sshd软连接之后,发现可以远程连接,但是用sudo bash切换到root之后,发现很多命令居然执行无反应,
最后发现,只要把openssh已经编译完成的源码目录整个拷贝过去,然后执行make install就可以,仔细研究了install执行的步骤,
也没发现有什么特殊的操作,很奇怪,一直没找到为什么,如果有人找到原因,希望可以在评论里面共享一下。
PS:我还在centos6.3上试过了,将编译结果直接拷贝到另外一台centos6.3机器上,就可以直接正常使用。