gitlab-ci.yml을 작성하고 변수로 키들을 등록하는 도중, 아예 새로 발급 받아서 등록하는게 나을 거 같다는 생각을 했다.
그래서 서버에 접속을 하지 않은 채 공개키를 재발급하고 서버에 올리려고 type $env:공개키경로 | ssh USER@remote-host "cat >> .ssh/authorized_keys"
명령어를 사용하였는데 Permission denied가 떴고 ssh
명령어를 통해 접속하려고 해도 Permission denied(publickey)라는 에러가 발생하였다.
이를 위해 시도했지만 실패한 방법에는
(1) EC2 직렬 콘솔 접속 시도
(2) 권한 변경
chmod 600
이나 chmod 400
으로 권한을 제한하면 된다는 글을 보아서 권한을 계속 변경하였지만 접속할 수 없었다.(3) ssh-add를 통해 키 캐싱
외주 도중 발생한 상황이어서 도저히 안 되면 인스턴스를 새로 만들고 SSL 연결 작업과 설정들을 모두 다시해야 하나라는 생각까지 했었다.
총 3명의 서버 개발자들이 있었는데 최대한 빨리 다른 서버 개발자들에게 상황을 공유했다. 다행히 1명이 오전에 접속을 하고 서버에 연결되어 있는 터미널을 닫지 않은 상황이라 서버에 연결되어 있었다. 따라서 다행히 인스턴스 리셋까지는 가지 않았다.
EC2 콘솔의 좌측 탭의 네트워크 및 보안
탭의 4번째 칸인 키 페어
로 접속한다.
우측 상단의 키 페어 생성
버튼을 클릭한다.
키 페어 명을 작성하고 키 페어 생성
버튼을 누르면 키 페어가 다운로드 된다.
.pem키를 PuTTY를 사용하여 .ppk 파일을 생성하고 .ppk 파일을 puttygen을 사용하여 RSA 공개키를 생성한다.
생성하면 큰 상자 안에 들어가 있는 키 정보를 서버에 등록한다. 다행히 서버에 접속해 있는 개발자가 있어서 그 분께 공개 키 정보를 건네드렸다. 서버의~/.ssh/authorized_keys
에 해당 정보를 등록한다.
2번 과정을 마치면 이제 서버에서도 새로 발급 받은 키를 등록했으므로 생성한 키를 인식할 수 있으므로 ssh -i 새로 발급 받은 키 ubuntu@eip
를 통해 접속을 하면 접속이 성공적으로 완료 된다.