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还原成之前的

原文链接:https://blog.csdn.net/ydZ157/article/details/124527259

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容