여느때와 같이 EC2에 깃을 활용하여 파일을 넣고 배포하려는데 갑자기 permission error가 떴다.
도대체 뭐가 문제일까 하며 씨름하던 와중 "그런데 EC2에서는 깃 로그인을 어떻게 하는거지?"에 대한 질문에 도달했다. 지금까지 이 질문을 하지 않은 채 기계적으로 코드만 띡띡 입력한 것 같아 자신을 돌아보게 되었다. 이번 기회에 SSH에 대해 알아보자

SSH(Secure Shell Protocol)은 깃허브의 리포지토리에서 데이터에 엑세스하고 쓸 수 있게 해주는 권리를 부여해준다. 쉽게 말해서 깃허브 로그인 없이 리포지토리에 접근할 수 있다는 뜻이다. 그래서 통신을 할 때 아이디 비밀번호 대신 SSH Key를 활용하게 된다.
SSH Key를 생성하면 2개의 키가 한 쌍으로 제공된다. 이것은 각각 private key와 public key이다.
private key는 클라이언트 로컬에 저장되고 public key는 서버에 저장되어 통신을 할 때 서로 같은 한 쌍임을 확인한 후 안전한 통신채널을 확립하게 된다.
우선 cd ~/.ssh로 들어가 ssh 폴더에서 키를 만들 준비를 한다. 윈도우의 경우 사용자 -> 사용자명 -> .ssh으로 들어가서 준비하면 된다.
ssh-keygen -t rsa
커맨드 창에 이 명령어를 입력하면 두 개의 키가 등장하게 된다. 여기서 key는 개인 키의 이름이며 key.pub는 공개 키의 이름이다.
이제 public key를 서버에 등록해야 한다. 등록 예시는 다음과 같다.

settings -> Deploy Keys -> Add deploy key를 통해 퍼블릭 키를 등록할 수 있다. settings가 보이지 않는 경우 리포지토리의 소유자가 아니기 때문이라고 한다.
필자의 경우 public key가 서버에 등록이 되어있지 않았기에 등록만 해주니 바로 해결이 되었다. 하지만 만일의 사태에 대비하여, 공부를 위해서 private key까지 공부하게 되었다. 리눅스를 활용해서 private key 파일을 넣는 방식은 생각보다 복잡했다.
scp -i "pem이름.pem" "경로\보낼파일" ubuntu@ec2이름:/home/ubuntu/파일저장위치 ....
이런 과정을 통해 private key를 넣게 되면 드디어 연결이 끝난다...