갑자기 새로운 친구가 프로젝트에 합류해서 해당 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]

이제 이 키를 팀원에게 나눠주면된다. 개꿀 ^ㅇ^

+ Recent posts