1

Centos 源码升级SSH

 2 years ago
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.
neoserver,ios ssh client

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

重启失**败解决办法**

如果出现启动超时的现象,如图:

安照以下步骤解决:

  1. 移除 sshd.service 文件

mv /lib/systemd/system/sshd.service /lib/systemd/system/ssh.service.bak

  1. 从 openssh 源码包中复制一个 sshd 启动脚本

cp openssh-8.6p1/contrib/redhat/sshd.init /etc/init.d/sshd

chmod 755 /etc/init.d/sshd

  1. 添加自启动chkconfig –add sshd chkconfig sshd on

  2. 重启 sshd

systemctl daemon-reexec

systemctl restart sshd


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK