[AWS] EC2 instance 접속 / RSA키 생성 / 공유그룹
서버개발

[AWS] EC2 instance 접속 / RSA키 생성 / 공유그룹

EC2 instance SSH 접속

환경 : AWS에서 EC2-Ubuntu22.04 사용

생성 시 기존에 있는 key나 혹은 새로운 키를 pem파일로 생성해둔다.

 

생성이 완료되면 체크 후 Connect를 눌러 접속한다. 그리고 public ip를 외우고 우측 하단에 Connect

일반적으로 EC2에 접속하려면 생성 시 설정한 pem key를 사용해 접속할 수 있다.

PuttyGen를 사용하면 .pem 파일을 .ppk 파일로 변경해서 putty에 키를 등록해서 접속할 수 있다.

Load -> All files(*) -> 확인 -> Save private key -> ppk파일
pem키를 이용한 putty 실행화면

pem키가 없이 ec2 instance에 접속하려면 설정을 변경해야하는데 

/etc/ssh/sshd_config → ssh 서버 설정 configuration

$ sudo vi /etc/ssh/sshd_config (혹은 권한이 있는 아이디 사용)

// password notification=no <- 주석처리

를 ec2에서 진행해주고,

ubuntu 계정 비밀번호를 설정해준다. 

$ passwd ubuntu

 

혹은 다른 사용자를 추가하려면 adduser를 사용하면 된다.

$ adduser user2

 

다시 pem키가 없는 곳으로 돌아가서 처음에 외워둔 public ip를 넣어준다

$ ssh ubuntu@”ec2 public ip”

 이렇게 되면 해킹 위험에 놓이게 되는데 그래서 대체할 방법이 없으면 이 상태를 계속 유지하면 안된다.

팀원끼리 같은 서버에 pem키를 공유하지 않고 사용하기 위해서는 공개키&개인키 기법을 사용해야한다.

 

PKI 기반의 비대칭키 암호화 알고리즘으로 사용

개인키는 개인만 알고 있어야 하고, 공개키는 모두가 알아도 되는 키이다.

공개키/개인키 생성

$ cd "사용자"/./ssh
$ ls -al

/*
id_rsa.pub 이런 파일이 없으면 키가 없는 것 
*/

// 없으면 키생성
$ ssh-keygen -t rsa
$ cat id_rsa.pub

 

/.ssh/id_rsa 개인키, 알려주면 안된다

/.ssh/.id_rsa.pub 공개키, 알려줄 키 값

 

이제 클라이언트에서 생성한 공개키를 리모트 서버에 등록해야 하는데 없는 경우 ./ssh가 없는 경우 하위 프로세스를 먼저 진행한다.

$ cd /home/"사용자"
$ mkdir .ssh
$ cd .ssh
$ touch authorized_keys
$ vi authorized_keys
$ cd ..
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

 

 

이전에 생성한 클라이언트의 공개키를 복사해서 텍스트 편집기에 적어둔다

 

해당 과정을 수행하면 /root/./ssh에 키가 존재한다

안전하게 보관하기 위해서 접근 권한도 변경해준다

$ cd ..
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

 

 

이제 리모트 서버에 클라이언트의 공개키를 authorized_keys에 넣는다(여러 방법이 있다 ssh-copy-id 등)

$ ssh-copy-id user2@"ec2 public ip"

$ ssh ubuntu@"ec2 public ip"

 

해당 과정을 수행하면 마지막 줄 처럼 ec2에 pem키가 없어도 접근할 수 있다. 만약 되지 않는다면 ec2에 접근해서 ec2의 authrized key에 client의 id_rsa.pub를 복사해서 추가해주면 정상작동함을 확인할 수 있다.

 

이후 팀의 동시작업을 위해 계정별 동시에 접근 가능한 공간을 만들어주어야한다.

그렇기에 그룹권한과 그룹 폴더가 필요하다.

 

testgroup을 만들고, user2와 ubuntu라는 user에 그룹을 지정한다

$ groupadd testgroup
$ cat /etc/group

$ usermod -a -G testgroup user2
$ usermod -a -G testgroup ubuntu

 

shared라는 폴더를 만들고 공유폴더로 만들기 위해서 chmod로 권한을 변경하고 chown으로 소유그룹을 변경한다

$ cd home
$ mkdir shared
$ cd shared
$ touch test.txt
$ cd ..
$ chmod 070 shared
$ chown root:testgroup shared

 

또한, 관련되지 않은 유저의 테스트를 위해 user3를 만든다

$ adduser user3

 

TEST

ubuntu user는 잘 작동하고 test.txt에 hello i'm ubuntu를 남겼다.

그러나 testgroup에 속하지 못한 user3는 shared 폴더에 들어갈 수 없다

testgroup에 속한 user2는 shared 폴더에 접속해 test.txt를 확인할 수 있는 모습이다.

test.txt까지 수정했다.