[AWS] 인스턴스 간 SSH 키페어인증으로 접속하기

Jorze 조르제·2021년 11월 9일
0

AWS

목록 보기
2/3

이번 포스트에서는 ansible을 하며 aws에서 control node와 server node를 만드는데, ssh 통신으로 노드간 접속해본 것을 기록해보려 합니다.

목표
1. control 1개, server 3개로, 총 4개를 만든다.
2. 모든 노드에 jawoo라는 유저를 만든다.
3. control의 jawoo 유저가 server a, b, c 의 jawoo유저로 ssh통신이 가능하게 한다.

* OS는 amazon linux 2를 사용했습니다.

jawoo 유저 만들기

유저를 만드는 방법은 간단합니다.

sudo su -
useradd jawoo
vi /etc/group
visudo -f /etc/sudoers

루트 계정으로 접속해서 jawoo 유저계정을 만들어주고, /etc/group에 들어가서 wheel 그룹에 jawoo를 추가해줍니다. 그 후, sudoers의 110번 줄로 가서 비밀번호 없이 sudo 명령어를 사용할 수 있도록 설정을 바꿔줍니다.

퍼블릭키를 복사하는 두가지 방법

control의 jawoo가 server의 jawoo로 통신하기 위해서는, server에서 control의 퍼블릭키를 가지고 있어야 합니다.

첫째로, server에서 ssh-keygen를 사용해 .ssh디렉토리를 만든 후, authorized_keys를 만들어 control의 퍼블릭키값을 복사/붙여넣기 해주는 것입니다.

ssh jawoo@10.0.0.x

안내문구에 yes를 치면 별 탈 없이 ssh 통신이 실행됩니다.

둘째로는, ssh-copy-id를 사용해 control의 키를 복사해 주는 것입니다. ssh접속이 가능하도록 퍼블릭키를 그대로 복사해서 복사명령어 사용 후 따로 해줘야 할 것이 없어서 편합니다. 다만, ssh-copy-id 역시 ssh 통신을 통한 복사이기 때문에, ssh통신이 가능한 상태여야 합니다. 그래서 키페어인증방식의 ssh접속이 아닌 비밀번호인증을 통해 접속해야 합니다.
기본적으로 csp에서 인스턴스를 만들게 되면 키페어로 ssh인증을 합니다. 그래서 ssh설정파일(/etc/ssh/sshd_config)에서 ssh접속 시에 패스워드 사용이 no로 되어있죠. yes로 바꿔줍니다.

sudo vi /etc/ssh/sshd_config
sudo systemctl restart sshd

ssh 데몬을 재시작 해줍니다. 이제 비밀번호로 인증이 가능하니 ssh-copy-id로 control의 퍼블릭키를 넘겨줍니다.

profile
아장아장

0개의 댓글