서기록

2023-12-30 토요일 / seogilang

 오라클 클라우드에서 무료 인스턴스를 만들고 잘 사용하던 도중 실수로 ssh키를 분실하거나 iptables을 잘못 건드려 ssh 접속이 안되는 경우가 있다.

 이런 경우 오라클 클라우드 사이트에서 클라우드 쉘로 접속하여 문제를 해결하면 되는 듯 하지만 클라우드 쉘도 접속이 안 되거나 접속은 되지만 로그인이 되지 않는 상황이라면 접속이 안 되는 인스턴스의 부트 볼륨을 분리하여 접속이 가능한 다른 인스턴스에 블록 볼륨으로 연결하여 문제를 해결해야 한다.

 

오라클 클라우드 ssh 접속이 안 되는 경우

1. 접속이 안되는 인스턴스 정지.

 오라클 클라우드 홈페이지의 인스턴스 메뉴에서 이동한 뒤 접속이 안 되는 인스턴스의 페이지로 이동하여 인스턴스를 찾아 정지시키자.
(정지하는데 시간이 걸리니 기다리자)

오라클 클라우드 인스턴스 정지

 

2. 부트 볼륨 분리.

 인스턴스를 정상적으로 종료했다면 스크롤을 내려 하단 부분의 리소스 메뉴에서 [부트 볼륨]으로 이동.

 오른쪽의 […]을 클릭하여 메뉴를 열고 [부트 볼륨 분리]를 클릭하자.
(역시나 분리에도 약간의 시간이 걸리니 기다리자)

오라클 클라우드 인스턴스 부트 볼륨 분리

 

3. 블록 볼륨 연결.

 이번에는 접속이 가능한 인스턴스 페이지로 이동.

 하단 부분의 리소스 메뉴에서 [연결된 블록 볼륨]으로 이동.

 [블록 볼륨 연결] 버튼을 클릭.

오라클 클라우드 블록 볼륨 연결

 

 조금전 분리한 부트 볼륨을 선택.

오라클 클라우드 연결할 볼륨 선택

 

 연결한 인스턴스의 OS를 선택하면 블록 볼륨을 연결할 수 있다.

오라클 클라우드 볼륨 운영체제

 

4. iSCSI 접속 명령 확인.

 블록 볼륨을 연결했다면 iSCSI 명령어를 먼저 확인하자.

 연결된 블록 볼륨 오른쪽의 […]을 클릭하여 메뉴를 열고 [iSCSI 명령 및 정보]를 클릭.

오라클 클라우드 iSCSI 명령

 

 우선 접속을 해야 하니 접속 부분의 명령어를 모두 복사하자.
 (접속 해제 명령어도 필요하니 창은 닫지 말고 놔두자)

오라클 클라우드 iSCSI 접속과 접속 해제 명령

 

5. iSCSI 접속 및 블록 볼륨 마운트.

 이제 블록 볼륨을 연결한 인스턴스에 접속하자.

 접속했다면 먼저 복사한 iSCSI 접속 명령어를 실행.

 그 다음 연결한 블록 볼륨을 마운트하는 명령어를 실행하자.

 mount -t ext4 /dev/sdb1 /mnt

오라클 클라우드 iSCSI 접속 명령 입력

 

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가 접속되는지 확인해 보자.

오라클 클라우드 인스턴스 시작

 

그 외 내용

 쉽게 생각하면 부팅이 안 되는 컴퓨터에서 하드를 분리해서 부팅이 되는 컴퓨터에 하드를 연결한 다음 문제를 해결하는 개념이라고 보면 된다.

 과정만 보면 번거로워 보일 수 있지만 막상 해보면 그리 어려운 과정은 아니다.