OpenSSH是用于安全远程登录、命令执行和文件传输的SSH协议(版本2)的完整实现。它包括一个客户机ssh和服务器sshd、文件传输工具scp和sftp,以及用于密钥生成(ssh-keygen)、运行时密钥存储(ssh-agent)和一些支持程序的工具。
获取源码:
https://github.com/openssh/openssh-portable
Github文档上描述openssh编译时,是使用autoconf和make构建的。它需要一个工作的C编译器、标准库和标头以及zlib。也可以使用LibreSSL或OpenSSL中的libcrypto,但是在构建OpenSSH时可能不支持加密算法的子集。
所以需要先下载并编译zlib和openssl.
编译zlib
$ ./configure --prefix=/usr/local/zlib &&make&&make install
编译openssl
$ ./config --prefix=/usr/local/openssl && make && make install
如果出现如下报错,则先安装Perl5
Operating system: x86_64-whatever-linux2
You need Perl 5.
安装Perl 5
1.下载:https://www.cpan.org/src/5.0/perl-5.28.0.tar.gz
2.安装:
$ tar -xvzf perl-5.28.0.tar.gz
$ cd perl-5.28.0
$ ./Configure -des -Dprefix=$HOME/localperl
编译openssh
$ cd openssh-portable
$ autoreconf
$ ./configure --with-zlib=/usr/local/zlib --with-ssl-dir=/root/code/openssh/openssl-1.1.1a --with-md5-passwords --with-ssl-engine
注意:
1.如果没有autoconf,需要先安装autoconf,然后运行autoconf才会生成configure文件
$ sudo apt-get install autoconf
$ autoconf
# Centos 可能需要执行
$ yum install automake
$ autoreconf
2. --with-ssl-dir要求使用 openssl 源码包解压的路径,而不是安装的路径,configure命令结果如下图所示
编译
# make && make tests