AWS 인스턴스 (OS ubuntu) apt upgrade 후 SSH 재접속 불가

Jaemin Kim·2023년 11월 15일

Error 및 해결

목록 보기
8/9
post-thumbnail

<원인>

AWS에서 인스턴스를 만든 후 nginx를 설치하려면 apt update, apt upgrade를 해야 한다고 합니다. 문제는 apt upgrade를 하고나면 aws에서 제공하는 ssh클라이언트로 해당 서버에 재접속이 불가능하다는 점인데요! 설정 문제라는 듯 한데...

<해결책>

  1. Tabby Terminal 프로그램 설치 후 프로필 생성, 접속
    수강생 분의 추천으로 설치해서 사용해봤습니다. AWS 인스턴스에서 SSH키를 다운받고, Terminal의 프로필에 IP와 함께 등록하면 무난하게 접속이 가능했습니다.

  2. Windows PowerShell에서 ssh 명령어를 통해 접속 (현재 사용 중)

ssh {계정명}@{인스턴스ip}

를 통해 접속할 수 있습니다. 이 때, 보안 설정을 통해 인증 방법을 선택할 수 있습니다.

2-1. ssh키를 통한 접속

ssh -i {인증키 경로} {계정명}@{인스턴스ip}

ssh키를 다운받은 뒤 해당 경로를 입력하면 인증 후 접속할 수 있습니다. 이 때 AWS의 설정에 따라 어떻게 바뀔지는 모르겠습니다만, 저의 경우 인증키의 보안설정이 되어 있지 않아 거부되는 경우가 있었습니다. 이 경우

chmod 600 {인증키 경로}

명령어를 통해 인증키 보안설정을 해준 뒤 사용하면 된다고 합니다.

2-2. 계정 생성과 권한 설정을 통한 접속
우선 ssh에 접속할 때 비밀번호를 통한 인증 과정을 추가해야합니다.

sudo vim /etc/ssh/sshd_config

...
PasswordAuthentication yes
...

sshd_config에서 PasswordAuthentication 부분을 yes로 바꿔준 뒤,

sudo systemctl restart sshd
sudo systemctl status sshd

sshd를 재시작, status를 사용해 activate되어있는지 확인합니다.
이제 ssh명령어를 통해 인스턴스에 접속하면 계정의 비밀번호를 입력하는 과정이 추가됩니다.

<계정 설정>

계정 설정은 su를 통해 root권한을 얻거나 sudo 명령어를 사용해야합니다.
별다른 설정을 하지 않았다면 su를 사용하기 위해 sudo passwd root로 root의 비밀번호를 설정해야했던 것 같습니다.

  • ubuntu 계정을 사용한다면 상단의 passwd명령어를 통해 ubuntu 계정의 비밀번호를 설정합니다.
  • 새 계정을 만들 것이라면 sudo adduser {계정명}을 통해 계정을 생성해줍니다. 이것저것 설정하는 과정이 있지만 생략합니다.

이후

sudo visudo

...
{계정명} ALL=(ALL:ALL) ALL
...

이 경우는 Nano로 실행이 되는 것 같습니다. 저장은 ctrl+o, 종료는 ctrl+x로 가능합니다. visudo를 연 뒤 ALL 커맨드를 입력하여 생성한 계정의 권한을 설정합니다. 이제 해당 계정도 sudo커맨드를 사용할 수 있습니다!...아마 뭔가 더 있을텐데 조금 더 찾아보긴 해야겠습니다. 아무튼 이 경우는 실무에 들어가거나 운영을 하기 위한 배포 시 권장되지 않는 방법이지만 토이프로젝트의 경우 편하게 쓰기 위해 이렇게 설정하기도 한다고 합니다.

profile
선생님..개발이 하고싶어요

0개의 댓글