1.准备安装包
//openssl-1.0.2o.tar.gz
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
https://www.openssl.org/source/
//openssh7.7.1p1
wget https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.7p1.tar.gz
http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
//zlib-1.2.1
wget http://www.zlib.net/zlib-1.2.11.tar.gz
https://sourceforge.net/projects/libpng/files/zlib/1.2.11/
2.安装zlib
//解压安装包
tar -zxvf zlib-1.2.11.tar.gz
//编译安装zlib(升级zlib也是这种方式直接在原有的路径覆盖就行)
cd zlib-1.2.11
sudo ./configure --prefix=/usr/local/src/zlib
sudo make
sudo make install
//系统配置
cd /etc/ld.so.conf.d
sudo sh -c "echo '/usr/local/src/zlib' >> /etc/ld.so.conf.d/zlib.conf"
//加载配置
ldconfig
//查看zlib版本
cat /sr/local/src/zlib/lib/pkgconfig/zlib.pc
3.安装openSSL
//解压安装包
tar -zxvf openssl-3.0.3.tar.gz
//编译安装openssl(将/usr/local下的ssl删除或改名)
cd openssl-3.0.3
sudo ./config --prefix=/usr/local/ssl --shared zlib
sudo make
sudo make install
# 备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
//系统配置
root@ccevet-server:/home/ubuntu# find /usr -name libcrypto.so.3
/usr/lib64/libcrypto.so.3
/usr/local/lib64/libcrypto.so.3
/usr/local/ssl/lib64/libcrypto.so.3
cd /etc/ld.so.conf.d
sudo sh -c "echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf.d/openssl.conf"
//加载配置
ldconfig -v
//查看openssl版本
openssl version
openssl version -a
# 如果报错:因为源码安装默认安装的位置是 /usr/local/ssl 需要将创建软链接到系统位置
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/i
问题:无法创建符号链接 '/usr/i': 文件已存在
解决:rm /usr/i
4.安装openSSH
//解压安装包
tar -zxvf openssh-9.0p1.tar.gz
# 备份原openssh文件
mv /etc/init.d/ssh /etc/init.d/ssh.old
cp -r /etc/ssh /etc/ssh.old
# 卸载原openssh(可以不卸载, 之后还要安装)
apt-get remove openssh-client openssh-server
# 安装
sudo apt-get install openssh-server
sudo apt-get install openssh-client
//编译安装openssh
cd openssh-9.0p1
#需要指定openssl的安装路径
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl --with-privsep-path=/var/lib/sshd
make
make install
//加载配置
ldconfig
ldconfig -v
//查看openssh版本
ssh -V
//配置ssh相关配置文件
找到之前备份的ssh_bak里的配置文件,将ssh_config 和 sshd_config 的配置信息复制到新安装的ssh_config 和 sshd_config 文件内。
//注意
如果重启没有 /etc/init.d/ssh 将原先的还原:mv /etc/init.d/ssh.old /etc/init.d/ssh
ldconfig
#安装 libpam0g-dev
apt-get install libpam0g-dev
重点强调:ubuntu下是安装libpam0g-dev, 不装下面安装会报错PAM headers not found