imhamburger 님의 블로그

깃(Git)과 깃허브(Github) - SSH키를 사용하는 이유 본문

깃(Git)과 깃허브(Github)

깃(Git)과 깃허브(Github) - SSH키를 사용하는 이유

imhamburger 2024. 7. 9. 23:41

오늘은 SSH키를 도대체 왜? 사용해야하는지에 대해 설명해보려 한다.

가장 기본적인 보안이라고 하면 비밀번호가 떠오른다. 노트북을 실행할 때, 개인 SNS에 로그인할 때, 스마트폰을 이용할 때 등 일상생활에서 내가 인터넷상에서 어딘가에 가입하면 아이디와 비밀번호를 요구한다. 개인정보를 보호하기 위해 너무나 당연한 것이다.

그러나 해킹을 하려는 수법들이 워낙 다양해지면서 그에 맞서 보안장치들은 지속적으로 발전해왔다. 스마트폰만 생각해도 이제는 비밀번호가 아닌 생체인증을 하고 은행앱에서도 생체인증을 쉽게 볼 수 있다.

깃허브는 알다시피 회사에서 개발을 할 때 협업툴로 많이 이용된다. 회사의 모든 개발소스들이 그곳에 저장되어 있다. 따라서 제 3자가 한 회사의 깃허브에 접근할 수 있는 비밀번호를 알아낸다면 아주 큰일이다. 한 회사가 만든 모든 어플리케이션이 망가질 수 있기 때문이다. 게다가 인간이 만든 비밀번호는 기억하기 위해 보통 자신들이 자주 쓰는걸로 해놓기 마련이다. 그래서 보안상 취약할 수 밖에 없다.

그래서 깃허브는 비밀번호가 아닌 토큰을 입력해야하는 방식을 이용했다. 한 계정에 개인토큰을 발급받아 그 토큰을 입력해야 접근할 수 있게 말이다. 토큰은 인간이 아닌 기계가 만든 것이기 때문에 비밀번호보다 보안에 강하다. 그치만 여기에도 문제가 있다.
토큰은 문자와 숫자가 복잡하게 조합된, 그것도 아주 긴… 형태를 가지기 때문에 사람들은 이를 기억을 할 수 없으니 어딘가에 메모해놓거나 컴퓨터 어딘가에 해당 토큰을 저장해놓는다. 그럼 컴퓨터가 해킹당하게 된다면?

이러한 상황들로 인해 깃허브는 SSH키라는 강력한 보안장치를 도입했다.

SSH는 보안 프로토콜로 풀어서 쓰면 Secure SHell 이다. SSH는 안전하지 못한 네트워크 환경에서 암호화 기법을 이용해 안전하게 통신할 수 있게 해준다. 이를 이용하여 깃허브에 접근할 수 있다.

SSH를 통해 연결할 때 로컬 머신에서 프라이빗 키 파일을 사용하여 인증만 하면 된다. 

 

더 편리해진건 커밋(commit)을 할 때마다 토큰을 입력안해도 된다라는 것! (근데 세팅하는게 조금 복잡하다.)

더 자세한 내용은 깃허브 문서를 확인하면 좋다.