SSH vs HTTPS 테스트
이 단계에서는 리모트 Git 저장소와 상호 작용하기 위해 HTTPS 및 SSH 프로토콜을 사용하는 것의 차이점을 살펴봅니다. 둘 다 코드를 가져오고 푸시할 수 있지만, 서로 다른 인증 방법을 사용합니다.
우리는 이미 origin 리모트를 HTTPS 를 사용하도록 구성했습니다. 두 프로토콜을 사용하여 저장소를 복제하여 URL 형식의 차이점을 살펴보겠습니다.
먼저, ~/project 디렉토리로 다시 이동합니다.
cd ~/project
이제 HTTPS 를 사용하여 저장소를 복제하는 것을 시뮬레이션해 보겠습니다. 복제를 위해 인증이 필요하지 않은 공개 저장소 URL 을 사용합니다.
git clone https://github.com/git/git.git git-https-test
이 명령은 공식 Git 저장소를 git-https-test라는 새 디렉토리로 복제합니다. 복제 프로세스를 나타내는 출력을 볼 수 있습니다. 공개 저장소를 HTTPS 를 통해 복제하는 것은 일반적으로 자격 증명이 필요하지 않기 때문에 작동합니다.
이제 SSH 프로토콜을 사용하여 동일한 저장소를 복제하는 것을 시뮬레이션해 보겠습니다. SSH URL 형식은 다르며, 일반적으로 git@hostname:user/repo.git와 같습니다.
git clone git@github.com:git/git.git git-ssh-test
이 명령을 실행하면 호스트의 진위 여부에 대한 메시지 또는 권한 거부 오류가 표시될 수 있습니다. 이는 SSH 를 통한 복제는 SSH 키를 사용하여 인증이 필요하기 때문입니다. 이 환경에서 SSH 키를 설정하지 않았으므로 연결이 실패하거나 자격 증명을 묻는 메시지가 표시됩니다.
Cloning into 'git-ssh-test'...
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6qU/mzgpTw4mSjJA9PMpTkCXPzQ7lPkLiA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
no를 입력하고 Enter 키를 눌러 연결 시도를 거부할 수 있습니다.
이는 주요 차이점을 보여줍니다. HTTPS 는 공개 액세스 (예: 복제) 에 종종 더 간단하며, SSH 는 SSH 키가 설정되면 인증된 액세스 (예: 변경 사항 푸시) 를 위한 보다 안전하고 편리한 방법을 제공합니다.
이제 테스트 디렉토리를 제거할 수 있습니다.
rm -rf git-https-test git-ssh-test
Git 워크플로우를 관리하고 저장소에 대한 안전한 액세스를 보장하려면 HTTPS 와 SSH 를 언제 사용해야 하는지 이해하는 것이 중요합니다.