AWS 에서 생성하여 운영중인 EC2 를 AMI(Amazon 머신 이미지) 를 생성하여 다른 Region 으로 복사 할 수 있다.
즉 서버 이동이 리전을 이동하여 생성할 수 있기 때문에 많이 쓰이지는 않겠지만…
사용된 OS 는 CentOS 7 이고 AMI 복사 및 인스턴스 시작은 문제 없이 진행이 되었다.
리전간 복사한 AMI를 이용하여 인스턴스를 시작할 경우 SSH로 로그인을 할수 없는 경우가 발생 하였다.
발생한 사유는 selinux 의 fcontext 가 리전간 복제 후 인스턴스를 시작할때 풀려버리는 문제가 있다.
Server refused our key
Disconnected: No supported authentication methods available.
정상 값 ssh_home_t
1 2 |
.ssh]# ls -lZ ~/.ssh/authorized_keys -rw-------. centos centos system_u:object_r:ssh_home_t:s0 authorized_keys |
비 정상 값 default_t
1 2 |
.ssh]# ls -lZ ~/.ssh/authorized_keys -rw-------. centos centos system_u:object_r:default_t:s0 authorized_keys |
해결 방법은 아래와 같이 해결이 가능할 것으로 보인다.
- 원본 서버에서 selinux 를 disabled 시킨다. ( vi /etc/sysconfig/selinux )
- AMI를 생성 한다.
- AMI를 다른 리전으로 복사 한다.
- 복사된 AMI를 이용하여 인스턴스를 새롭게 띄운다.
- selinux 를 enforcing 시킨다.
아울러서 복사전에 다음과 같이 authorized_keys 파일의 컨텍스트를 선언해 두는것도 도움이 될 수 있다.
1 2 |
~]# semanage fcontext -a -t ssh_home_t '/home/centos/.ssh/authorized_keys' ~]# restorecon -R /home/centos |