SSH란?

  • Secure Shell의 줄임말로, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜
  • 사용자(클라이언트)와 서버(호스트)는 각각의 키를 보유하고 있으며, 이 키를 이용해 연결 상대를 인증하고 안전하게 데이터를 주고 받음

HTTPS vs. SSH

  HTTPS SSH
인증방식 - 사용자가 각 작업(예: push, pull)을 할 때마다 GitHub에 사용자 이름과 비밀번호를 제공 - 한 번 키를 생성하고 해당 키를 GitHub에 등록한 후, 키를 통해 인증
- 사용자 이름과 비밀번호를 반복해서 입력할 필요가 없음
안정성 - 토큰 기반의 인증을 사용
- 공개 키 암호화 사용하지 않음
=> 상대적으로 보안 수준이 낮음
- 공개 키와 개인 키를 사용하여 데이터 암호화
- 더 높은 보안 수준 제공
편의성 - 설정이 간단 + 대부분의 환경에서 사용 가능
- 각 작업마다 사용자 이름과 비밀번호를 입력해야함
- 한 번 설정되면 키를 통한 자동 인증 가능
- 사용자 편의성이 더 높음

어떤 것을 선택해야할까?

HTTPS

  • 간단한 설정과 사용이 중요한 경우.
  • 기본적인 Git 사용에만 관심이 있고, 고급 보안이 필요하지 않은 경우.
  • 개인 프로젝트 또는 작은 팀 프로젝트에 적합합니다.

SSH

  • 높은 보안 수준이 필요한 경우.
  • 다른 사용자와 협업하거나 기업 환경에서 작업하는 경우. 반복적으로 비밀번호를 입력하는 것을 피하고자 하는 경우.
  • GitHub과 같은 서비스를 사용하는 경우, SSH 키를 등록하고 키를 사용하여 인증하면 보안적인 이점을 얻을 수 있음.

References