OpenSSH源码编译安装

一.     基础环境准备

操作系统:Ubuntu16.04Server

先sudo apt-get install vim openssh-server,便于后续上传源码以及调试。

看一下现在openssh的版本:

zjd@ubuntu:~$ ssh -V

OpenSSH_7.2p2 Ubuntu-4ubuntu2.6, OpenSSL 1.0.2g  1 Mar 2016

安装编译所需要的库:

zjd@ubuntu:~$ sudo apt-get install build-essential

二.     源码下载

从https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/下载最新的openssh-7.9p1.tar.gz;
从http://www.zlib.net/下载最新的zlib-1.2.11.tar.gz;
https://www.openssl.org/source/下载最新的openssl-1.1.1a.tar.gz。
 
/home/zjd/下新建mySSH目录,然后将这三个压缩包上传上去后用tar分别解压:
zjd@ubuntu:~/mySSH$ tar -zxvf zlib-1.2.11.tar.gz
。。。
zjd@ubuntu:~/mySSH$ ll
total 10312
drwxrwxrwx  5 root root    4096 Dec 17 16:41 ./
drwxr-xr-x  4 root root    4096 Dec 17 16:27 ../
drwxr-xr-x  5 zjd  zjd    12288 Oct 18 18:06 openssh-7.9p1/
-rw-rw-r--  1 zjd  zjd  1565384 Dec 17 16:39 openssh-7.9p1.tar.gz
drwxr-xr-x 19 zjd  zjd     4096 Nov 20 05:35 openssl-1.1.1a/
-rw-rw-r--  1 zjd  zjd  8350547 Dec 17 16:39 openssl-1.1.1a.tar.gz
drwxr-xr-x 14 zjd  zjd     4096 Jan 15  2017 zlib-1.2.11/
-rw-rw-r--  1 zjd  zjd   607698 Dec 17 16:39 zlib-1.2.11.tar.gz

三.     编译安装

1. zlib

进文件夹后直接配置编译安装:

zjd@ubuntu:~/mySSH/zlib-1.2.11$ ./configure --prefix=/usr/local

zjd@ubuntu:~/mySSH/zlib-1.2.11$ make

zjd@ubuntu:~/mySSH/zlib-1.2.11$ sudo make install

2. openssl

注意要先卸载旧版本:

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ sudo apt-get purge openssl

删除旧配置文件:

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ rm -rf /etc/ssl

然后配置编译安装新版本:

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ ./config  --prefix=/usr/local --openssldir=/usr/local/ssl

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ make

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ sudo make install

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ ./config shared --prefix=/usr/local --openssldir=/usr/local/ssl

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ make clean

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ make

zjd@ubuntu: ~/mySSH/openssl-1.1.1a$ sudo make install

其中:prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库。

最后,因为是非root用户安装,因此需要增加两条软连接:

zjd@ubuntu:~/mySSH/openssl-1.1.1a$ sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1

zjd@ubuntu:~/mySSH/openssl-1.1.1a$ sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

OK,现在看一下openssl的版本:

zjd@ubuntu:~/mySSH/openssl-1.1.1a$ openssl version

OpenSSL 1.1.1a  20 Nov 2018

3. openssh

zjd@ubuntu:~/mySSH/openssh-7.9p1$ ./configure -prefix=/usr/local -sysconfdir=/etc/ssh -with-ssl-dir=/usr/local/ssl

zjd@ubuntu:~/mySSH/openssh-7.9p1$ make

zjd@ubuntu:~/mySSH/openssh-7.9p1$ sudo make install

安装完重启服务:

zjd@ubuntu:~/mySSH/openssh-7.9p1$ sudo systemctl restart sshd.service

现在再看一下ssh的版本:

zjd@ubuntu:~/mySSH/openssh-7.9p1$ ssh -V

OpenSSH_7.9p1, OpenSSL 1.1.1a  20 Nov 2018

猜你喜欢

转载自www.cnblogs.com/zjd1396/p/10137067.html