# 1、查看当前ssh版本
ssh -V
# 2、查看ssh和sshd的安装路径,方便升级后指定二进制文件的存放位置
find / -name 'ssh'
find / -name 'sshd'
# 3、安装升级依赖
yum -y install gcc gcc-c++ kernel-devel
# 4、下载源码包、个人习惯存放路径/data/software
cd /data/software
wget http://www.zlib.net/zlib-1.2.11.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz
# 5、解压源码包
tar xf openssh-8.8p1.tar.gz
tar xf openssl-1.1.1h.tar.gz
tar xf zlib-1.2.11.tar.gz
# 6、编译安装zlib 【prefix=/usr/local/zlib 方便自己管理(因为每一个应用的构建物,他的东西,都放在一个目录里,要删,直接删这个目录就行)】
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
# 7、编译 -j <服务器cpu数量> 写多少就是用几个内核进行编译,会快一些
make -j 2
# make install 开始进行安装,执行完成后 zlib会出现在/usr/local/ 这个目录下
make install
# 8、安装 openssl
cd openssl-1.1.1h/
./config --prefix=/usr/local/ssl -d shared
make -j 2
make install
# 9、将ssl动态库路径写入到/etc/ld.so.conf配置文件中,该.conf配置文件为加载so库的路径配置文件
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
# 查看加载动态库
ldconfig -v
# 10、安装openssh-8.8p1
# 备份原来的的配置文件
mv /etc/ssh /etc/ssh.bak
cd /data/software/openssh-8.8p1/
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-zlib=/usr/local/zlib
make -j 2
make install
# 11、修改sshd_config文件,将配置写入到sshd_config
# 必须添加X11UseLocalhost no 和 XAuthLocation /usr/bin/xauth 这两项,否则X11转发异常
echo "X11Forwarding yes" >> /etc/ssh/sshd_config
echo "X11UseLocalhost no" >> /etc/ssh/sshd_config
echo "XAuthLocation /usr/bin/xauth" >> /etc/ssh/sshd_config
echo "UseDNS no" >> /etc/ssh/sshd_config
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
# 备份 /etc/ssh 原有文件,并将新的配置复制到指定目录;注意自己的安装路径
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp -rf /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
# ssh -V 查看安装后的版本
[root@i-b125a406 openssh-8.8p1]# ssh -V
OpenSSH_8.8p1, OpenSSL 1.1.1h 22 Sep 2020
# 启动sshd
systemctl start sshd
# 解决错误--start 如果无法启动ssh 建议先用 sshd -t 检查有无错误
# <1>、先停止sshd服务
systemctl stop sshd
# <2>、将systemctl原服务删除
rm -rf /lib/systemd/system/sshd.service
# <3>、使用安装包里自带的sshd.init,复制到/etc/init.d/sshd,然后进行重启
systemctl daemon-reload
cp /data/software/openssh-8.8p1/contrib/redhat/sshd.init /etc/init.d/sshd
/etc/init.d/sshd restart
# 查看状态
systemctl status sshd
# 使用 /etc/init.d/sshd restart 进行重启
/etc/init.d/sshd restart
# 解决错误--end
# 12、添加开机启动项
chkconfig --add sshd
# 查看启动配置
chkconfig --list sshd
————————————————
版权声明:本文为CSDN博主「flymore96」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/flymore96/article/details/123371595
原文地址:openssh7.4p1升级openssh8.8p1_flymore96的博客-CSDN博客
测试无问题 感谢原博主提供