프로토콜


서버와 통신하려면 프로토콜을 사용해야 합니다.
깃은 서버와 통신할 수 있는 다양한 프로토콜을 지원합니다.

깃은 기본적으로 Local, HTTP, SSH, Git 네 종류의 전송 방식을 지원합니다.


Local(로컬)


로컬 컴퓨터에 원격 저장소를 생성하는 것을 의미합니다.
이 방식은 자신의 컴퓨터를 NFS (Network File System) 등 서버로 이용할 때 편리합니다.

로컬 저장소를 서버로 이용할 때는 폴더 경로만 입력하면 됩니다.

$ git remote add 원격저장소별칭 폴더경로

로컬은 간단하게 원격 서버를 구축할 수 있을 뿐만 아니라 빠른 동작이 가능합니다.
하지만 모든 자료가 자신의 컴퓨터에 집중되는 위험도 있습니다.


HTTP


깃은 HTTP 방식의 프로토콜을 지원합니다. HTTP는 SSH처럼 많이 사용하는 프로토콜 중 하나입니다.
깃허브, 비트버킷 같은 호스팅 서비스도 기본 HTTP 프로토콜을 지원합니다.

서버에 접속하려면 로그인 절차를 거쳐야 합니다. HTTP는 기존 아이디와 비밀번호만으로 접속자를 인증하여 처리할 수 있습니다.
HTTP는 익명으로도 처리할 수 있으며, 계정을 이용하여 처리할 수도 있습니다.


SSH


SSH는 깃에서 권장하는 프로토콜로, 높은 수준의 보안 통신으로 처리하기 때문에 깃 서버를 좀 더 안전하게 운영할 수 있습니다.
SSH 프로토콜을 사용하려면 주소 앞에 ‘ssh://계정@주소’처럼 프로토콜 타입을 지정해야 합니다.
계정을 생략하여 현재 로그인된 사용자로 대체할 수도 있습니다.

SSH 접속을 할 때는 인증서를 만들어 사용합니다. 인증서를 만들어 접속하면 별도의 회원 로그인 절차를 거치지 않아도 됩니다.
인증서는 공개키와 개인키로 구분하는데 공개키는 서버에 등록하며, 개인키는 로컬에 저장합니다.

SSH는 HTTP와 달리 익명으로 접속할 수 없습니다. 이러한 점이 기업에서 깃 서버를 운영할 때 적합한 프로토콜이라고 할 수 있습니다.


Git


Git 프로토콜은 깃의 데몬 서비스를 위한 전용 프로토콜 방식을 의미합니다.
SSH와 유사하지만 인증 시스템이 없어 보안에 취약할 수 있습니다.
실제로 이 프로토콜은 잘 사용하지 않는 편입니다.