AWS EC2 SSH 접속
AWS EC2에 새로운 인스턴스를 생성한후 SSH 접속하는 방법이다.
Key Pair 사용 접속
인스턴스 생성 마지막단계에서 Key Pair를 생성할것인지 묻는다.
키 페어는 AWS에 저장하는 퍼블릭 키와 사용자가 저장하는 프라이빗 키 파일로 구성됩니다. 이 둘을 모두 사용하여 SSH를 통해 인스턴스에 안전하게 접속할 수 있습니다. Windows AMI의 경우 인스턴스에 로그인하는 데 사용되는 암호를 얻으려면 프라이빗 키 파일이 필요합니다. Linux AMI의 경우, 프라이빗 키 파일을 사용하면 인스턴스에 안전하게 SSH로 연결할 수 있습니다.
새 키 페어를 생성을 선택하면 키 페어 이름을 입력하게되고 키 페어를 다운로드할 수 있다. 이때 주의해야할 점은 이 파일이 생성되고 나면 다시 다운로드 할 수 없다는 점이다. 다운로드한 키페어를 잃어버리면 ssh 접속을 할 수 없다.1
계속하려면 먼저 프라이빗 키 파일(*.pem 파일)을 다운로드해야 합니다. 액세스할 수 있는 안전한 위치에 저장합니다. 파일은 생성되고 나면 다시 다운로드할 수 없습니다.
터미널에서 ssh를 통해 접속하는 방법과 터미널 에뮬레이터(ex:putty)를 사용하는 방법이 있다.
터미널 에뮬레이터를 통한 접속
여기서는 Putty를 기준으로 설명한다.2 putty는 .pem을 지원하지 않고 .ppk를 지원하므로 puttygen으로 변환해줘야 한다. puttygen을 실행하여 다운로드한 pem파일을 로드한후 Save private key를 실행하면 ppk파일이 생성된다.
putty의 Connection, SSH, Auth 설정으로 가면 Private key file for authentication이 있다 방금생성한 ppk를 링크한다. EC2 인스턴스의 퍼블릭 DNS로 연결하면 접속되는것을 확인할 수 있다.
접속하면 당연히 id와 password를 요구하는데 우분투의 경우 ubuntu로 접속할 수 있으며 접속후 root계정으로 전환하려면 먼저 sudo passwd root
로 password를 지정하면 root로 변경할 수 있다.
SSH를 통한 접속
$ ssh -i /path/my-key-pair.pem ec2-user@2001:db8:1234:1a00:9691:9503:25ad:1761
Key Pair 미사용 접속
키 페어를 사용하지 않을경우 AMI에서 기본 제공된 암호를 알고 있어야 한다. 일반적으로 알고 있는 사용자 계정을 통해 접속할때 이 옵션을 선택하면 된다. 단, 주의할점은 AMI에 따라 Key Pair를 사용하도록 기본 세팅되어 있을 수 있다는 것이다.
처음 인스턴스 생성시 키 페어를 사용하고 인스턴스 생성이 완료되면 키 페어로 접속후 키 페어 없이 접속하도록 설정을 바꾸는 방법이 좋다.
키 페어 없이 접속가능하도록 설정 바꾸기
/etc/ssh/sshd_config
를 열어보면PasswordAuthentication
이 no로 되어있을 것이다. 이 부분을 yes로 바꿔준다.- sshd를 재시작한다.
sudo /etc/init.d/sshd restart
orsudo reload ssh
AMI에 따라 cloud-init conf에서 ssh 인증 정책 설정이 있을 수 있을 수 있다. /etc/cloud/cloud.cfg
에 ssh_pwaut : 0
이 있다면 1로 바꿔준다. 0으로 되어 있을 경우 reboot시 sshd_conf 설정이 원복되어 데몬이 올라올 수 있다.
- 키 페어를 분실하여 인스턴스 접근이 불가할땐 어떻게 해야할까? 좀 번거롭기는 하지만 방법이 있다. 아마존 웹 서비스에서 새로운 Key Pair를 발행하는 방법을 참조. 간단하게 설명하자면 새로운 인스턴스와 키페어를 생성하고 키페어를 분실한 인스턴스의 볼륨을 새로만든 인스턴스에 붙여 새로 받은 키페어(~/.ssh/authorized_keys)를 복사한다. 볼륨을 원래 인스턴스로 연결시키고 새로 만든 인스턴스는 삭제한다. 이제 새로운 키페어로 접근이 가능하다. [return]
- 나는 Kitty를 사용한다. Kitty는 Putty로부터 파생되었고 좀더 재미있는 기능들이 추가되었다. Windows 전용이다. Windows에서는 Kitty~ [return]