操作系统恢复后 ssh_host_[algorithm]_key 组所有者发生更改

操作系统恢复后 ssh_host_[algorithm]_key 组所有者发生更改

我有一个奇怪的问题,我找不到答案。最近我从操作系统 tar 档案中恢复了一台 Linux 机器(RHEL 7.3)。采取的步骤如下:

  • 创建操作系统相关的文件系统 tar 存档,存储在 NFS 中
  • 创建一个新的VM,从Cent OS DVD启动
  • 对磁盘进行分区并相应地创建文件系统
  • 挂载 NFS,解压相关文件系统
  • 使磁盘可启动
  • 使用恢复的操作系统启动新虚拟机
  • 注意网卡等小问题
  • IP 未更改,因为该虚拟机位于隔离网络中

到目前为止,所有服务都没有太大问题启动。但是,当我尝试 ssh 进入此虚拟机时,它失败并显示“套接字错误:已断开连接”

我通过控制台进入虚拟机,运行“systemctl status sshd”,我惊讶地发现虽然 sshd 服务已启动,但在关键文件权限上出现错误。

Permissions 0640 for 'ssh_host_ecdsa_key' are too open. 
It is required that your private key files are NOT accessible by others. 
This private key will be ignored
bad permissions: ignore key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key

...
...

我检查了 /etc/ssh 目录中文件的所有者和权限,令我惊讶的是关键文件的组与源计算机不同。

在恢复的虚拟机上,(主机名已编辑)

[root@restored ssh]# ls -al
total 292
drwxr-xr-x.   2 root root        225 Dec 16  2017 .
drwxr-xr-x. 170 root root      12288 Dec 13 09:50 ..
-rw-r--r--.   1 root root     242153 Sep  7  2016 moduli
-rw-r--r--.   1 root root       2208 Sep  7  2016 ssh_config
-rw-------.   1 root root       4361 Sep  7  2016 sshd_config
-rw-r-----.   1 root input       227 Dec 16  2017 ssh_host_ecdsa_key
-rw-r--r--.   1 root root        162 Dec 16  2017 ssh_host_ecdsa_key.pub
-rw-r-----.   1 root input       387 Dec 16  2017 ssh_host_ed25519_key
-rw-r--r--.   1 root root         82 Dec 16  2017 ssh_host_ed25519_key.pub
-rw-r-----.   1 root input      1675 Dec 16  2017 ssh_host_rsa_key
-rw-r--r--.   1 root root        382 Dec 16  2017 ssh_host_rsa_key.pub

在原始计算机上(已编辑主机名)

[root@original ssh]# ls -al
total 292
drwxr-xr-x.   2 root root        225 Dec 16  2017 .
drwxr-xr-x. 170 root root      12288 Dec 13 09:50 ..
-rw-r--r--.   1 root root     242153 Sep  7  2016 moduli
-rw-r--r--.   1 root root       2208 Sep  7  2016 ssh_config
-rw-------.   1 root root       4361 Sep  7  2016 sshd_config
-rw-r-----.   1 root ssh_keys    227 Dec 16  2017 ssh_host_ecdsa_key
-rw-r--r--.   1 root root        162 Dec 16  2017 ssh_host_ecdsa_key.pub
-rw-r-----.   1 root ssh_keys    387 Dec 16  2017 ssh_host_ed25519_key
-rw-r--r--.   1 root root         82 Dec 16  2017 ssh_host_ed25519_key.pub
-rw-r-----.   1 root ssh_keys   1675 Dec 16  2017 ssh_host_rsa_key
-rw-r--r--.   1 root root        382 Dec 16  2017 ssh_host_rsa_key.pub

在两台机器上,/etc/group 都有以下内容。

[root@original ssh]# grep ssh_keys /etc/group
ssh_keys:x:999:
[root@original ssh]# grep input /etc/group
input:x:997:

我更改了关键文件的组并重新启动了 sshd,问题就解决了。

然而,这让我对整个修复过程感到不舒服。这些是我的问题

  • 为什么看似简单的 tar/untar 过程会改变文件的 GID?
  • 如果是这样,我们如何知道哪些文件被更改以及有多少文件被更改?

非常感谢您提供的所有宝贵答案。

谢谢,

邦斯夫

相关内容