一、安装包下载
- openssl
官方下载地址: https://www.openssl.org/source/ - openssh
官方下载地址:https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ - zlib
官方下载地址: http://www.zlib.net/ - CSDN资源下载链接:
https://download.csdn.net/download/lqh_linux/87403202
二、安装telnet
验证telnet服务是否存在并启用。telnet ip # 测试是否成功登陆;
如果登录不成功,安装telnet服务;
apt-get install openbsd-inetd telnetd telnet -y
/etc/init.d/openbsd-inetd restart
# 启动服务;netstat -anpt|grep 23
# 查看telnet服务的默认端口是否启动;
telnet ip # 测试是否成功登陆;
三、安装
卸载原openssh:
apt-get remove openssh-server openssh-client -y
此时想再通过类似xshell,putty之类的工具访问对应服务器就失效了,所以切勿关闭当前操作界面。
安装 libpam0g-dev和gcc:
apt-get update -y
apt-get install libpam0g-dev -y
apt install build-essential -y
四、安装zlib
cd /mnt/
tar zxvf zlib-1.2.13.tar.gz
cd zlib-1.2.13/
./configure --shared
make && make install
五、安装OpenSSL
cd /mnt/
tar zxvf openssl-3.0.7.tar.gz
cd openssl-3.0.7/
./config shared zlib
一定要加上shared 参数,要不在安装openssh的时候就无法找到
make && make install
备份原来的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
mv: cannot stat ‘/usr/include/openssl’: No such file or directory
这个报错不管
创建软链接到系统位置
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
查看libssl.so位置
# find / -name "libssl.so"
/mnt/openssl-3.0.7/libssl.so
/usr/local/lib64/libssl.so
软链接openssl的lib库
mkdir -p /usr/local/openssl/lib64
ln -s /usr/local/lib64/libssl.so /usr/local/openssl/lib64/libssl.so
将openssl 的lib 库添加到系统
echo “/usr/local/openssl/lib64” > /etc/ld.so.conf.d/openssl.conf
使新添加的lib 被系统找到
ldconfig -v
可能遇到的问题:
解决方法
通过 find / -name libcrypto.so.3 和 find / -name libssl.so.3 查找到对应so文件的位置,并建立软连接
ln -s /usr/local/lib64/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3
openssl升级成功显示
# openssl version
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)
六、安装openssh
# cd /mnt/
# tar zxvf openssh-9.0p1.tar.gz
# cd openssh-9.0p1/
# whereis openssl
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/include/openssl --with-privsep-path=/var/lib/sshd
需要指定openssl的安装路径
# make && make install
# ssh -V
OpenSSH_9.0p1, OpenSSL 3.0.7 1 Nov 2022
# cd /etc/ssh
# mv sshd_config sshd_config.default
# cp ../ssh.old/sshd_config ./
# mv /etc/init.d/ssh.old /etc/init.d/ssh
# systemctl unmask ssh
# systemctl restart sshd
完整安装编译脚本
#!/bin/bash
echo "remove old openssh-server openssh-client"
sleep 2
apt-get remove openssh-server openssh-client -y
echo "remove old openssh-server openssh-client success"
echo "=============================================================="
sleep 1
echo "install build-essential packages"
apt-get install libpam0g-dev -y
apt install build-essential -y
sleep 1
echo "install build-essential packages success"
echo "=============================================================="
sleep 1
echo "begin install zlib"
tar zxvf zlib-1.2.13.tar.gz && rm zlib-1.2.13.tar.gz
cd zlib-1.2.13/
./configure --shared
make && make install
echo "zlib install success"
echo "=============================================================="
sleep 1
cd ../
echo "begin install openssl"
sleep 1
tar zxvf openssl-3.0.7.tar.gz && rm openssl-3.0.7.tar.gz
cd openssl-3.0.7/
./config shared zlib
make && make install
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
mkdir -p /usr/local/openssl/lib64
ln -s /usr/local/lib64/libssl.so /usr/local/openssl/lib64/libssl.so
echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig -v
ln -s /usr/local/lib64/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3
echo "install openssl success"
echo "=============================================================="
sleep 1
cd ../
echo "begin install openssh"
tar zxvf openssh-9.0p1.tar.gz && rm zxvf openssh-9.0p1.tar.gz
cd openssh-9.0p1/
whereis openssl
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/include/openssl --with-privsep-path=/var/lib/sshd
make && make install
systemctl unmask ssh
systemctl restart sshd
ssh -V
echo "install openssh success"