대부분 아마존 웹서비스를 이용하게되면 접속방법을 Putty를 이용한 접속방법에 대하여 소개하고있다. 라이센스상의 문제가 거의 없는  Putty가 좋은 면도 있지만
개인적으로는 XShell사용을 더 선호한다. XShell또한 학교나 가정용으로 사용하면 무료고 유료버전도 그렇게 부담될 정도는 아니라고 생각한다.

 

XShell을 선호하는 이유중하나는 하나의 서버가 아니라 다수개의 서버를 관리하는 경우 Putty보다 편리한 기능을 제공한다. 한 인스턴스(프로그램)내에서의 Tab기능을 이용하여 다수 세션 접속이라든지, 동일한 접속을하는 경우 세션 복사 접속이라든지, 여러 인스턴스 실행시 창 나누어서 보는 기능을 한번 사용해보면 Putty로 다시 돌아오기가 쉽지가 않다.

 

1. 접속사용자 지정
아마존 웹서비스를 신청했으면 확장자가 .pem이라는 Key Pair파일을 가지고 있을것이다.
아래 그림과 같이 XShell을 실행후 사용자 인증 카테고리에서 사용자 인증 부분에서 "방법(M)"을 선택하는 부분에서 "Public Key"를 선택한다.
사용자 이름은 아마존 이미지를 어떤 것으로 선택하느냐에 따라서 다른것 같은데. 레드햇  리눅스 7의 경우 ec2-user이다.

 

초기에는 root일 것이라고 접속했지만 실제로 root사용자로 접속해보면 다음과 같은 메시지를 보여주고 세션을 종료해버린다.
Authenticating with public key "imported-openssh-key"
Please login as the user "ec2-user" rather than the user "root".

 

 

2. 사용자 키 등록
그리고 사용자 키(K) 부분에서 다음과 같이 찾아보기를 클릭하여 가저오기 버튼을 클릭하여 아마존에서 받은Key Pair파일(*.pem)을 선택하여 확인을 누른다.

 

 

위와 같이하고 다른 일반접속 설정처럼 연결정보에서 세션이름 및 호스트 정보를 등록하여 사용한다.

 

3. Root 사용자 활성화
초기에는 root 사용자가 비 활성화 되어있기 때문에 서버를 전적으로 콘트롤할수 있는데는 한계가 있다. sudo  명령을 통해서 제한된 root권한을 사용할수 있지만 필요상 root 사용자를 활성화 해야할 필요가 있을 수 있다. 다음과 같은 절차로 root 사용자를 활성화 시킨다.

 

3-1 root 사용자 비밀번호 설정

[ec2-user@ip-[본인사설IP] ~]$ sudo passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

 

3-2 root 사용자 활성화
      [ec2-user@ip-[본인사설IP] ~]$ sudo vi /etc/ssh/sshd_config
      다음 그림과 같이 /etc/ssh/sshd_config파일의 "PermitRootLogin yes"항목을 #으로 주석처리된것을 풀어준다.

     

3-3 root 사용자의 .ssh 디렉토리 생성
      이미 생성되어있다면 아래와 같이 메시지가 나올 것이다.
      [ec2-user@ip-[본인사설IP] ~]$ sudo mkdir /root/.ssh
      mkdir: cannot create directory ‘/root/.ssh’: File exists

 

3-4 ec2-user의 ssh 키를 root 계정으로 복사
      [ec2-user@ip-[본인사설IP] ~]$ sudo cp /home/ec2-user/.ssh/authorized_keys /root/.ssh

 

3-5 shhd 서비스 재구동
      [ec2-user@ip-[본인사설IP] ~]$ sudo service sshd restart
      Redirecting to /bin/systemctl restart  sshd.service

 

위와 같이 하면 연결 사용자이름을 "ec2-user"대신에 바로 "root" 계정 ID를 지정하여 접속할 수 있다.

 

4. 기타
호스트 정보는 Public IP도 있을것이고 엄청긴 Public DNS를 이용하여 사용해도 되겠지만 Elastic IP를 생성후 서버에 할당하여 사용하자.
Public IP의 경우 서버 재기동시 바뀌는 것으로 알고있다. 그리고 사설 IP는 아마존내의 서버사이에는 사설 IP를 사용하면 과금카운트 대상에서 제외되는것으로 알고있기때문에 내부에서 사용하는 경우 사설 IP 사용하는 방법을 고려하여 어플리케이션이나 서버환경 구축시 고려해야할 사항으로 보인다.
또한 Elastic IP 사용시 요금이 추가로 어떻게 가산되는지 모르겠다. 여러개의  Elastic IP를 사용할수 있는 것으로 보아서 하나이상의 도메인이름을 사용하는 경우나 다른 목적이 있는 경우 한개이상의  Elastic IP기능을 사용하면 되겠다.

 


 

Posted by Steven J.S Min
,