Centos 源码升级SSH
source link: https://blog.yinaun.com/posts/58743.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
OpenSSH 最新版
方案描述 升级到 OpenSSH 新版本。
修复流程
下载安装包 > 备份旧版 ssh 配置 > 安装依赖包 > 其他准备工作 > 编译安装 > 创建软连接等文件 > 修改配置允许 root 登录 > 配置开机启动 > 检查是否安装成功 > 完成
升级过程不会关闭旧版 ssh 服务,无需担心安装失败无法导致远程连接。如果服务器在外地机房且无人值守,请谨慎操作。
步骤 1 下载最新版源码包
下载地址: https://www.openssh.com/releasenotes.html
步骤 2 备份旧版 SSH
mv /usr/sbin/sshd /usr/sbin/sshd.old mv /usr/bin/ssh /usr/bin/ssh.old
如果旧版本是源码安装的 OpenSSH,建议备份整个 openssh 目录:
mv /usr/local/openssh /usr/local/openssh.old
步骤 3 安装依赖
yum -y install zlib-devel openssl-devel gcc
步骤 4 解压安装
tar -zxvf openssh-8.6p1.tar.gz cd openssh-8.6p1
./configure –prefix=/usr/local/openssh make
make install
步骤 5 替换密钥文件
1)备份密钥:cp -r /usr/local/openssh/etc /usr/local/openssh/etc.bak
2)替换为旧版 SSH 密钥:cp /etc/ssh/ssh_host_* /usr/local/openssh/etc
步骤 6 验证是否安装成功
1)修改配置文件:vi /usr/local/openssh/etc/sshd_config将 Port 改为 222
#PermitRootLogin prohibit-password 改为 PermitRootLogin yes
2)启动新版 ssh:/usr/local/openssh/sbin/sshd如图,启动成功
3)从其他服务器上测试远程连接:ssh IP -p 222如果正常连接则表示安装成功
如果连接失败:
请检查是否被防火墙拦截:
systemctl status firewalld
如果开启了防火墙,将其关闭即可:
systemctl stop firewalld
步骤 7 重启 ssh 服务
1)恢复配置文件:vi /usr/local/openssh/etc/sshd_config
将 Port 改回 22
2)创建新版 ssh 软连接
ln -s /usr/local/openssh/sbin/sshd /usr/sbin/
ln -s /usr/local/openssh/bin/ssh /usr/bin/
3)systemctl restart sshd
重启失**败解决办法**
如果出现启动超时的现象,如图:
安照以下步骤解决:
- 移除 sshd.service 文件
mv /lib/systemd/system/sshd.service /lib/systemd/system/ssh.service.bak
- 从 openssh 源码包中复制一个 sshd 启动脚本
cp openssh-8.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod 755 /etc/init.d/sshd
添加自启动chkconfig –add sshd chkconfig sshd on
重启 sshd
systemctl daemon-reexec
systemctl restart sshd
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK