1. 程式人生 > >OpenSSH原始碼編譯安裝

OpenSSH原始碼編譯安裝

一.     基礎環境準備

作業系統:Ubuntu16.04Server

先sudo apt-get install vim openssh-server,便於後續上傳原始碼以及除錯。

看一下現在openssh的版本:

[email protected]:~$ ssh -V

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

安裝編譯所需要的庫:

[email protected]:~$ 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分別解壓:
[email protected]:~/mySSH$ tar -zxvf zlib-1.2.11.tar.gz
。。。
[email protected]:~/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

進資料夾後直接配置編譯安裝:

[email protected]:~/mySSH/zlib-1.2.11$ ./configure --prefix=/usr/local

[email protected]:~/mySSH/zlib-1.2.11$ make

[email protected]:~/mySSH/zlib-1.2.11$ sudo make install

2. openssl

注意要先解除安裝舊版本:

[email protected]: ~/mySSH/openssl-1.1.1a$ sudo apt-get purge openssl

刪除舊配置檔案:

[email protected]: ~/mySSH/openssl-1.1.1a$ rm -rf /etc/ssl

然後配置編譯安裝新版本:

[email protected]: ~/mySSH/openssl-1.1.1a$ ./config  --prefix=/usr/local --openssldir=/usr/local/ssl

[email protected]: ~/mySSH/openssl-1.1.1a$ make

[email protected]: ~/mySSH/openssl-1.1.1a$ sudo make install

[email protected]: ~/mySSH/openssl-1.1.1a$ ./config shared --prefix=/usr/local --openssldir=/usr/local/ssl

[email protected]: ~/mySSH/openssl-1.1.1a$ make clean

[email protected]: ~/mySSH/openssl-1.1.1a$ make

[email protected]: ~/mySSH/openssl-1.1.1a$ sudo make install

其中:prefix 是安裝目錄,openssldir 是配置檔案目錄,另外建議安裝兩次,shared 作用是生成動態連線庫。

最後,因為是非root使用者安裝,因此需要增加兩條軟連線:

[email protected]:~/mySSH/openssl-1.1.1a$ sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1

[email protected]:~/mySSH/openssl-1.1.1a$ sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

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

[email protected]:~/mySSH/openssl-1.1.1a$ openssl version

OpenSSL 1.1.1a  20 Nov 2018

3. openssh

[email protected]:~/mySSH/openssh-7.9p1$ ./configure -prefix=/usr/local -sysconfdir=/etc/ssh -with-ssl-dir=/usr/local/ssl

[email protected]:~/mySSH/openssh-7.9p1$ make

[email protected]:~/mySSH/openssh-7.9p1$ sudo make install

安裝完重啟服務:

[email protected]:~/mySSH/openssh-7.9p1$ sudo systemctl restart sshd.service

現在再看一下ssh的版本:

[email protected]:~/mySSH/openssh-7.9p1$ ssh -V

OpenSSH_7.9p1, OpenSSL 1.1.1a  20 Nov 2018