서버 노트

[Git] Clone에서 SSH, HTTP 장단 본문

Etc

[Git] Clone에서 SSH, HTTP 장단

Trunk 2026. 4. 21. 10:22

1. HTTP (Hypertext Transfer Protocol)

암호화되지 않은 평문 통신을 사용하는 방식입니다. 주소가 http://github.com/...처럼 s가 빠진 형태입니다.

장점

  • 설정의 극치: 아무런 추가 설정 없이 주소만 알면 바로 접근을 시도할 수 있습니다.
  • 네트워크 호환성: 80번 포트는 전 세계 거의 모든 네트워크에서 열려 있어 접속 차단이 거의 없습니다.

단점

  • 보안 취약 (가장 큰 문제): 데이터가 암호화되지 않은 채로 전송됩니다. 중간에 누군가 패킷을 가로채면 내 소스 코드는 물론, 로그인할 때 입력하는 아이디와 비밀번호가 그대로 노출됩니다.
  • 인증의 번거로움: 클론할 때마다 매번 계정 정보를 입력해야 하며, 최근 대부분의 Git 서비스(GitHub, GitLab 등)는 보안상의 이유로 순수 HTTP 접근을 막아두거나 HTTPS로 강제 리다이렉트합니다.

2. SSH (Secure Shell)

공개키 암호화 방식을 사용하는 보안 프로토콜입니다.

장점

  • 강력한 보안: 데이터 전송 시 암호화가 기본이며, 키 쌍을 이용하므로 비밀번호 유출 걱정이 없습니다.
  • 편의성: 한 번만 등록해두면 추가 인증 절차 없이 git push, pull을 자유롭게 할 수 있습니다.

단점

  • 초기 설정: SSH 키를 생성하고 서버에 등록하는 과정이 필요합니다.
  • 네트워크 제한: 회사나 학교 방화벽에서 22번 포트(SSH 전용)를 막아두면 연결이 불가능할 수 있습니다.

3. HTTP vs SSH 핵심 비교표

구분 HTTP (Plain) SSH
암호화 여부 X (평문 전송) O (암호화 전송)
보안성 매우 낮음 (가로채기 위험) 매우 높음
인증 방식 매번 ID/PW 입력 필요 등록된 SSH Key로 자동 인증
주요 포트 80 22
권장 여부 권장하지 않음 (사용 지양) 강력 권장

결론: 왜 요즘은 HTTP를 안 쓰나요?

요즘처럼 보안이 중요한 시대에 HTTP는 "나 여기 있으니 다 훔쳐 가세요"라고 외치며 코드를 보내는 것과 같습니다. 그래서 대부분의 개발자와 서비스는 SSH를 쓰거나, 최소한 암호화가 추가된 HTTPS를 사용합니다.