답을 찾을 수 없는 이상한 질문이 있습니다. 최근에 운영 체제 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를 변경하는 이유는 무엇입니까?
- 그렇다면 어떤 파일이 변경되었으며 얼마나 많은 파일이 변경되었는지 어떻게 알 수 있습니까?
귀하의 귀중한 답변에 진심으로 감사드립니다.
감사해요,
방시푸