博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

是的,踩坑了,导致服务器远程登录不上去,最后只能想其他办法了。所以有必要记下来具体的操作。

环境

centos7.9, 自带的 openssh 为 7.4, 准备升级到 7.9p1.

编译 openssh

先编译 openssh, 根据漏扫报告,openssh 至少要7.8以上,这里用 7.9p1 下载地址是:

https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz?spm=a2c6h.25603864.0.0.686840ad7Rg8Ge

下载完成之后解压:

tar xzvf openssh-7.9p1.tar.gz

接下来准备编译它,先运行 ./configure ,发现少哪个组件就安装。比如说报少 zlib,就通过yum 安装。

yum install zlib-devel

configure 的完整参数是:

./configure --prefix=/usr/local/openssh --exec-prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-selinux --with-tcp-wrappers

如果正常,就可编译了:

make

这里没有 make install 因为我想自己控制安装过程。而且,编译和运行可以在不同的服务器上。

安装 sshd

现在的主要难题是替换 sshd. 如果用下面的命令替换文件,

cp sshd /usr/sbin/

则会报错,无法替换,也就无法升级。

后来想了一个办法,sshd 不是一个服务吗?我可以修改服务配置文件,把 sshd 指向新编译出来的文件,再重启不就行了?等重启成功后,再用新编译的 sshd 替换掉旧的文件(位于 /usr/sbin/sshd),然后再把服务配置文件中的内容改回来,也就修改成功了。

先创建一个目录,用于存放新的 sshd,再将文件复制进去,之所以不用 /root/ 下的路径,可能会有权限的问题.

mkdir -p /data/ssh/
cp sshd /data/ssh/sshd

再编辑服务的配置文件,/usr/lib/systemd/system/sshd.service,把 ExecStart=/usr/sbin/sshd -D $OPTIONS 这一行,改成 ExecStart=/data/ssh/sshd -D $OPTIONS 。然后重启服务器,这时候悲剧发生,ssh 再也连不上服务器了! 因此,绝对不能在这个时候重启,而要调整好配置,再重启。下面是调整配置的地方。

1、调整 ssh 相关 key 的权限。

cd /etc/ssh/
ll *key
# 有三个 key 文件,把它们的权限调整成 600.
chmod 600 *key

上面如果不调整权限,则会报下面的错,导致无法登录。
error: @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
error: Permissions 0640 for '/etc/ssh/ssh_host_rsa_key' are too open.

2、然后再编辑 sshd_config, 把下面两行注释掉:

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials no

注释后像这样:

# GSSAPI options
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no

找到 PermitRootLogin yes 一行,本来是被注释掉的,现在要取消注释。

3、确保 /etc/empty/sshd/ 目录存在,且 owner 为 root, 像下面这样:
[root@localhost ssh]# ll /var/empty/
total 0
drwx--x--x. 2 root root 6 Aug 9 2019 sshd

这时候再重启系统,就能登录了。

之后就是替换原 sshd 的操作。
先备份原文件:

mkdir /data/backup/
cp /usr/sbin/sshd /data/backup/

再把文件复制过去:

cp /data/ssh/sshd /usr/sbin/

再次编辑,/usr/lib/systemd/system/sshd.service,恢复 sshd 执行文件的路径。然后重启服务器。

posted on 2022-11-29 00:08  黑米  阅读(2789)  评论(0编辑  收藏  举报