갑자기 새로운 친구가 프로젝트에 합류해서 해당 AWS서버를 공유해줘야 하는 상황이다.
새로운 계정을 파서 그 계정으로 접속하게 하고 싶었는데 알다시피 AWS linux에 접속하려면 공개키로 접속하는 형식이다. aws는 암호가 없이 private키를 소유하고 있는 사람이 접속할 수 있는 방식이라 내 계정을 그대로 넘겨야(즉 내 private key를 공유...) 해야 했다. 실제로 저번 프로젝트의 경우에는 그런 식으로 운영을 했었다 .
근데 문득 리눅스 자체가 여러 유저가 한 컴퓨터에 접속하는게 가능한 OS인데 (multi user!) 굳이 이렇게 할 필요가 있나 싶었다.
그래서 새로운 계정을 만들어 나눠줘볼까 라는 생각을 했다. 즉 새로운 유저 계정을 만들고 그 계정에 키페어를 만든 후 그 키를 가져오는 방법!
[ubuntu ~]$ sudo adduser newaccount
새로운 유저를 만든다.
[ubuntu ~]$ sudo su - newaccount
새로운 계정으로 변경한다.
[newaccount ~]$ ssh-keygen -t rsa
ssh-keygen은 keypair를 만드는 명령어다. 다음 명령어를 사용한다면 뭔가 이것저것 물어보는데 그냥 enter, enter, enter, enter 쳐보도록하자. 수행이 완료되면 .ssh라는 폴더가 생긴다.
[newaccount ~]$ ls -al
쳐서 확인해보도록 하자. 이 폴더 안에는 두가지 파일이 존재하는데 id_rsa 와 id_rsa.pub이다. 여기서 id_rsa는 우리가 로그인을 하기위해 필요로 하는 private 키고 id_rsa.pub는 public key이다. AWS에는 이 퍼블릭 키의 이름이 반드시 authorized_keys라는 이름이어야한다. (이름을 안바꿔주면 정상 작동을 하지 않더라... 확인 필요 ㅠ)
[newaccount ~]$ mv .ssh/id_rsa.pub .ssh/authorized_keys
이제 준비는 다 끝났다. 우리가 접속할 때 필요한 파일은 바로 id_rsa다. 외부에서 newaccount계정으로 접속하려면 이 파일이 필요하다.
방법1. 이 파일을 내 컴퓨터로 이동시켜야하는데 그냥 복붙 하시면 된다. 이 경우에는 권한을 바꿔줘야한다.
[mycomputer ~] vim myrsa
[mycomputer ~] chmod 600 myrsa
[mycomputer ~] ssh -i "myrsa" newaccount@[instance DNS]
방법2. 마찬가지로 컴퓨터로 이동시켜야 하는데 좀 더 간지가 나게 옮길 수가 있다.
[ubuntu ~] sudo mv /home/newaccount/.ssh/id_rsa /home/ubuntu
[ubuntu ~] sudo chown ubuntu:ubuntu ./id_rsa
[ubuntu ~] exit
[mycomputer ~] sudo scp -i "ubuntukey.pem" ubuntu@[instance DNS]:/home/ubuntu/id_rsa ./
[mycomputer ~] sudo ssh -i "id_rsa" newaccount@[instance DNS]
이제 이 키를 팀원에게 나눠주면된다. 개꿀 ^ㅇ^
'개발 > Linux' 카테고리의 다른 글
UNIX 명령어로 특정 파일을 제외하고 압축하기 (0) | 2021.04.03 |
---|---|
Linux상에서 Dual monitor workspace를 동시에 이동하기 (1) | 2021.02.18 |