EC2 instance SSH 접속
환경 : AWS에서 EC2-Ubuntu22.04 사용
생성 시 기존에 있는 key나 혹은 새로운 키를 pem파일로 생성해둔다.
생성이 완료되면 체크 후 Connect를 눌러 접속한다. 그리고 public ip를 외우고 우측 하단에 Connect
일반적으로 EC2에 접속하려면 생성 시 설정한 pem key를 사용해 접속할 수 있다.
PuttyGen를 사용하면 .pem 파일을 .ppk 파일로 변경해서 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까지 수정했다.
'서버개발' 카테고리의 다른 글
[AWS] EC2 ALB 연결 후 503 Service Temporarily Unavailable (2) | 2022.07.28 |
---|---|
[AWS] Ubuntu22.04 환경 EC2에서 스프링부트 런칭하기 (0) | 2022.07.26 |
JWT - Spring Boot JWT Tutorial 후기 및 오류 목록 (0) | 2022.07.19 |
HTTP - 김영한님 강의 정리 (0) | 2022.07.06 |
[Spring] API 설계 정리 2편(API 최적화) (0) | 2022.03.13 |