로컬 개발 환경에서 Git을 단독으로 사용한다면 SSH가 없어도 무방합니다. 그러나 외부 Git 서버에서 코드를 Clone 하거나 Push하려면 SSH 프로토콜을 사용합니다.
GitHub처럼 인터넷을 통해 원격에서 Git 저장소를 호스팅 해주는 서비스에서도 SSH 프로토콜을 지원하고 있습니다.
*SSH
는 Git에서도 사용하지만, 원래는 멀리 떨어져 있지만 인터넷이나 네트워크를 통해 연결되어있는 컴퓨터에 안전하게 연결해주는 프로토콜로 안전한 셀(Secure Shell)
이라고도 부릅니다.*
Window의 명령 프롬프트(cmd)나 리눅스의 터미널(Terminal)을 사용해봤다면 셀은 이미 알고 있는 겁니다. 셀을 통해서 명령어를 입력할 수 있는데, 이 명령어를 내 컴퓨터가 아닌 네트워크로 다른 컴퓨터에 전달해주고 결과를 받아볼 수 있게 해주는 게 바로 SSH입니다.
여기서 한 가지 중요한 개념이 바로 안전(Secure)
한 방식으로 통신한다는 점입니다.
아주 간단하게 설명하면, 공개키
는 접속하고자 하는 서버에 등록해 놓는 용도로 사용합니다.
이름에서 알 수 있지만 공개키는 외부에 공개되어도 괜찮습니다.
사용자는 개인키
를 통해서 SSH에 접속하고, 연결 요청을 받은 SSH 서버에서는 서버에 등록된 공개키 중에 요청 받은 개인키 정보와 매치가 되는 공개키가 있는지 찾습니다.
있으면 서버 접속에 성공, 없으면 서버 접속(인증)에 실패합니다.
SSH 키를 만들기 전에 이미 키가 만들어져 있는지 확인해야 합니다. 무턱대고 키를 추가 발급하면 기존 키가 덮어 씌워질 수 있습니다.
$ cd /~/.ssh # 보통 경로는 /User/(사용자) 에 생성되어져 있다.
$ ls
ls
를 실행해 id_ed25519
와 id_ed25519.pub
혹은 id_rsa
와 id_rsa.pub
파일쌍이 있는지 확인해 봅니다.