오라클 클라우드에서 무료 인스턴스를 만들고 잘 사용하던 도중 실수로 ssh키를 분실하거나 iptables을 잘못 건드려 ssh 접속이 안되는 경우가 있다.
이런 경우 오라클 클라우드 사이트에서 클라우드 쉘로 접속하여 문제를 해결하면 되는 듯 하지만 클라우드 쉘도 접속이 안 되거나 접속은 되지만 로그인이 되지 않는 상황이라면 접속이 안 되는 인스턴스의 부트 볼륨을 분리하여 접속이 가능한 다른 인스턴스에 블록 볼륨으로 연결하여 문제를 해결해야 한다.
목차(Contents)
오라클 클라우드 ssh 접속이 안 되는 경우
1. 접속이 안되는 인스턴스 정지.
오라클 클라우드 홈페이지의 인스턴스 메뉴에서 이동한 뒤 접속이 안 되는 인스턴스의 페이지로 이동하여 인스턴스를 찾아 정지시키자.
(정지하는데 시간이 걸리니 기다리자)
2. 부트 볼륨 분리.
인스턴스를 정상적으로 종료했다면 스크롤을 내려 하단 부분의 리소스 메뉴에서 [부트 볼륨]으로 이동.
오른쪽의 […]을 클릭하여 메뉴를 열고 [부트 볼륨 분리]를 클릭하자.
(역시나 분리에도 약간의 시간이 걸리니 기다리자)
3. 블록 볼륨 연결.
이번에는 접속이 가능한 인스턴스 페이지로 이동.
하단 부분의 리소스 메뉴에서 [연결된 블록 볼륨]으로 이동.
[블록 볼륨 연결] 버튼을 클릭.
조금전 분리한 부트 볼륨을 선택.
연결한 인스턴스의 OS를 선택하면 블록 볼륨을 연결할 수 있다.
4. iSCSI 접속 명령 확인.
블록 볼륨을 연결했다면 iSCSI 명령어를 먼저 확인하자.
연결된 블록 볼륨 오른쪽의 […]을 클릭하여 메뉴를 열고 [iSCSI 명령 및 정보]를 클릭.
우선 접속을 해야 하니 접속 부분의 명령어를 모두 복사하자.
(접속 해제 명령어도 필요하니 창은 닫지 말고 놔두자)
5. iSCSI 접속 및 블록 볼륨 마운트.
이제 블록 볼륨을 연결한 인스턴스에 접속하자.
접속했다면 먼저 복사한 iSCSI 접속 명령어를 실행.
그 다음 연결한 블록 볼륨을 마운트하는 명령어를 실행하자.
mount -t ext4 /dev/sdb1 /mnt
6. 접속 문제 해결.
마운트를 했다면 이제 마운트한 디렉토리로 이동하여 접속이 안 되는 문제를 해결하면 된다.
ssh 키 값을 분실한 경우.
예를 들어 ubuntu 환경을 사용하는데 ssh키를 분실하여 새로 만든 상황이라면 아래 명령어를 입력하여 새로 만든 ssh 키의 값을 붙여넣으면 된다.
sudo vi /mnt/home/ubuntu/.ssh/authorized_keys
iptables 설정이 문제인 경우.
iptables의 설정으로 인하여 접속이 불가능한 경우라면 아래의 명령어를 입력하여 iptables의 값을 확인하고 수정하면 된다.
(ssh 접속이 되지 않는다면 22포트에 대한 설정이 삭제되어서 그럴 수 있다)
sudo vi /etc/sysconfig/iptables/rules.v4
7. 마운트 해제 및 iSCSI 접속 해제.
문제를 해결했다면 이제 역순으로 작업하면 된다.
우선 아래의 명령어를 입력하여 마운트를 해제.
umount /mnt
마운트를 해제했다면 4번에서 띄워둔 창에서 iSCSI 접속 해제 명령어를 입력하여 iSCSI 접속을 해제하자.
8. 블록 볼륨 분리.
접속이 가능한 인스턴스 페이지의 연결된 블록 볼륨에서 블록 볼륨 오른쪽의 […]을 클릭하여 메뉴를 열고 [분리]를 클릭하자.
(분리에도 시간이 조금 걸린다 기다리자)
9. 부트 볼륨 연결.
블록 볼륨을 분리했다면 이제 다시 접속이 안 되는 인스턴스의 페이지로 이동.
리소스의 부트 볼륨 페이지에서 부트 볼륨 오른쪽의 […]을 클릭하여 메뉴를 열고 [부트 볼륨 연결]을 클릭하자.
10. ssh 접속 확인.
이제 다시 서버를 실행하고 ssh가 접속되는지 확인해 보자.
그 외 내용
쉽게 생각하면 부팅이 안 되는 컴퓨터에서 하드를 분리해서 부팅이 되는 컴퓨터에 하드를 연결한 다음 문제를 해결하는 개념이라고 보면 된다.
과정만 보면 번거로워 보일 수 있지만 막상 해보면 그리 어려운 과정은 아니다.