openssh、openssl、zlib热升级详细介绍,以及问题处理

写在前面:这篇文章是参考一位博主的,在其基础上补充了一些。他的博客:

openssh-8.8 安装最新版_上晴下雪的博客-CSDN博客_openssh安装

经测试,升级sshd服务,是不用停止ssh连接的。

首先介绍一下openssh、openssl、zlib的关系:

openssl依赖于zlib,openssh依赖于openssl和zlib,所以我们要先安装zlib,然后是openssl,最后是openssh。

zlib下载地址:http://www.zlib.net/zlib-1.2.11.tar.gz

openssl下载地址:https://www.openssl.org/source/openssl-1.1.1l.tar.gz

openssh下载地址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz

1.安装zlib

#进入到/usr
mkdir zlib    #创建源码存储目录
cd zlib
#将下载好的源码上传到/usr/zlib 然后解压
cd zlib-1.2.11    #进入到源码目录
./configure --prefix=/usr/local/zlib
make && make install

2.安装openssl

#进入/usr
mkdir openssl    #创建源码存储目录
cd openssl
#将下载好的源码上传到/usr/openssl 然后解压
cd openssl-1.1.1l    #进入到源码目录
./config shared --prefix=/usr/local/ssl
make
make install
ln -s /usr/local/ssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/ssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig –v
openssl version

3.安装openssh(为避免安装失败,最好是先配置一下telnet)

#进入/usr
mkdir openssh    #创建源码存储目录
#将下载好的源码上传到/usr/openssh 然后解压
cd openssh-8.8p1    #进入到源码目录
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make && make install
mv /usr/sbin/sshd /usr/sbin/sshd.old.bk
cp sshd /usr/sbin/
cp ssh /etc/init.d/ssh
cp sshd /usr/local/sbin/sshd
cp ssh /usr/local/sbin/ssh

4.同步配置

mv /usr/bin/scp /tmp/
mv /usr/bin/ssh* /tmp/
ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
ln -s /usr/local/openssh/bin/scp /usr/bin/scp
ln -s /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add
ln -s /usr/local/openssh/bin/ssh-agent /usr/bin/ssh-agent
ln -s /usr/local/openssh/bin/ssh-keygen  /usr/bin/ssh-keygen
ln -s /usr/local/openssh/bin/ssh-keyscan /usr/bin/ssh-keyscan
ln -s /usr/local/sbin/sshd /usr/bin/sshd

cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'Ciphers aes128-ctr,aes192-ctr,aes256-ctr' >> /usr/local/openssh/etc/sshd_config

5.执行service sshd reload(最好是不要restart,reload重载配置就可以了)

6.查看ssh -V

可能遇到的问题:

 1. ssh升级之后无法登录,提示拒绝密码,解决办法:

将/etc/ssh/下的key文件备份,然后重启ssh

2.service sshd start 命令无法使用,提示:extra arguments 解决办法:

将/etc/init.d/sshd还原成之前的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值