SSH
SSH란?
- Secure Shell의 줄임말로, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜
- 사용자(클라이언트)와 서버(호스트)는 각각의 키를 보유하고 있으며, 이 키를 이용해 연결 상대를 인증하고 안전하게 데이터를 주고 받음
HTTPS vs. SSH
HTTPS | SSH | |
---|---|---|
인증방식 | - 사용자가 각 작업(예: push, pull)을 할 때마다 GitHub에 사용자 이름과 비밀번호를 제공 | - 한 번 키를 생성하고 해당 키를 GitHub에 등록한 후, 키를 통해 인증 - 사용자 이름과 비밀번호를 반복해서 입력할 필요가 없음 |
안정성 | - 토큰 기반의 인증을 사용 - 공개 키 암호화 사용하지 않음 => 상대적으로 보안 수준이 낮음 |
- 공개 키와 개인 키를 사용하여 데이터 암호화 - 더 높은 보안 수준 제공 |
편의성 | - 설정이 간단 + 대부분의 환경에서 사용 가능 - 각 작업마다 사용자 이름과 비밀번호를 입력해야함 |
- 한 번 설정되면 키를 통한 자동 인증 가능 - 사용자 편의성이 더 높음 |
어떤 것을 선택해야할까?
HTTPS
- 간단한 설정과 사용이 중요한 경우.
- 기본적인 Git 사용에만 관심이 있고, 고급 보안이 필요하지 않은 경우.
- 개인 프로젝트 또는 작은 팀 프로젝트에 적합합니다.
SSH
- 높은 보안 수준이 필요한 경우.
- 다른 사용자와 협업하거나 기업 환경에서 작업하는 경우. 반복적으로 비밀번호를 입력하는 것을 피하고자 하는 경우.
- GitHub과 같은 서비스를 사용하는 경우, SSH 키를 등록하고 키를 사용하여 인증하면 보안적인 이점을 얻을 수 있음.