#当前系统版本,即openssh版本
cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
#下载
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz
#解压并进入文件夹
tar xf openssh-8.8p1.tar.gz
cd /root/openssh-8.8p1
#检查环境
./configure
#遇到报错,安装相关依赖
#检查通过,开始编译
make
make install
#备份原文件并替换
cp -r /etc/ssh/sshd_config /etc/ssh/sshd_config_20240105
#替换
cp sshd_config /etc/ssh/sshd_config
#输入yes,覆盖文件
#创建系统初始化脚本
cp contrib/redhat/sshd.init /etc/init.d/sshd
ls /etc/init.d/sshd
#修改配置文件
配置一:
sed -ri 's/^#(PermitRootLogin).*/\1 yes/g' /etc/ssh/sshd_config
配置二:
##注意“/usr/local/libexec/sftp-server”的地址需根据实际环境来,一般为“/usr/local/libexec/sftp-server”
##也有的为“/usr/local/libexec/openssh/sftp-server”
sed -ri 's/^(Subsystem).*/\1 sftp \/usr\/local\/libexec\/sftp-server/g' /etc/ssh/sshd_config
echo "Ciphers aes128-ctr,aes192-ctr,aes256-ctr" >> /etc/ssh/sshd_config
echo 'OPTIONS="-f /etc/ssh/sshd_config"' >> /etc/sysconfig/sshd
配置三:
###以下命令物理机执行,ECS服务器不存在sshd.service配置文件 ,可跳过
sed -ri 's/^(ExecStart=).*/\1\/usr\/local\/sbin\/sshd -D $OPTIONS/g' /usr/lib/systemd/system/sshd.service
sed -ri 's/^(Type=).*/\1simple/g' /usr/lib/systemd/system/sshd.service
#重新加载
cp /usr/bin/ssh{,.bak}
cp /usr/local/bin/ssh /usr/bin/ssh
systemctl daemon-reload
systemctl restart sshd
#查看新版本
ssh -V
OpenSSH_8.8p1, OpenSSL 1.0.2k-fips 26 Jan 2017
参考:
https://www.cnblogs.com/wangzy-Zj/p/16719300.html