어제 뉴스 보다가 멈칫했습니다. 깃허브 계정 보안이 뚫렸다는 소식에 저도 모르게 제 계정부터 확인했죠. AI 개발자라면 깃허브는 거의 '본진'이나 다름없거든요. 깃허브(GitHub) 보안 강화는 선택이 아니라 필수입니다. 딱 이 3가지만 확실히 하면 훨씬 안전해질 거예요.

최근 뉴스 보면서 저도 놀랐습니다
솔직히 저도 깃허브 계정 보안에 대해 막연하게 생각했던 적이 많습니다. '내 계정까지 누가 해킹하겠어?' 하는 안일한 마음이었죠. 그런데 최근 경찰 발표처럼 깃허브 접속 권한 유출 사례가 계속 나오고 있잖아요. 저도 작년에 개발 협업하다가 동료 한 명이 개인 접근 토큰(PAT)을 실수로 노출해서 한바탕 난리가 난 적이 있었거든요. 그땐 정말 식은땀이 나더라고요. AI 모델 개발이나 중요한 코드 관리는 깃허브 없이는 불가능한데, 보안이 허술하면 모든 노력이 한순간에 물거품이 될 수 있다는 걸 그때 알았습니다. 해킹 한 번 당하면 복구하는 데 시간과 비용이 엄청나게 들죠. 직장인에게는 그게 곧 '업무 마비'를 의미합니다. 진짜입니다. 제가 옆에서 지켜보면서 느꼈죠. 이젠 더 이상 미룰 수 없다는 생각에 저도 제대로 알아보게 됐습니다.
포인트: 깃허브 보안, 남의 일이 아니라 내 일이에요. 생각보다 가까이 있는 위협입니다.
그래서 정확히 뭘 해야 할까요?
깃허브 계정을 지키는 방법은 사실 복잡하지 않습니다. 핵심은 '내 계정에 나만 접근하게 하고, 만약 뚫리더라도 피해를 최소화하는 것'이죠. 가장 기본적이면서도 효과적인 세 가지를 먼저 말씀드릴게요. 첫째는 '2단계 인증(2FA)'입니다. 비밀번호 외에 추가 인증 수단을 더하는 거죠. 둘째는 'SSH 키'를 사용하는 겁니다. 비밀번호를 직접 입력하는 대신 암호화된 키로 인증하는 방식입니다. 마지막으로 '개인 접근 토큰(PAT)'을 주기적으로 관리해야 합니다. 저는 처음에는 PAT가 뭔지도 몰랐어요. 그냥 시키는 대로 만들어서 썼는데, 이게 생각보다 위험한 놈이더라고요. 이런 기본 원리들을 제대로 이해하고 적용하면 해커들의 접근을 훨씬 어렵게 만들 수 있습니다. 귀찮다고요? 나중에 후회할 일 만들지 않는 게 낫습니다.
포인트: 2단계 인증, SSH 키, PAT 관리. 이 세 가지가 깃허브 보안의 기본입니다.
딱 3가지, 이렇게 적용해 보세요
실제로 깃허브 계정 보안을 강화하는 건 생각보다 어렵지 않습니다. 제가 작년에 직접 적용해보면서 느낀 점은, 딱 세 가지만 해도 훨씬 마음이 편해진다는 거죠. 모르면 손해예요.
포인트: 설정은 귀찮아도 한 번 해두면 큰 위험을 막아줘요. 공식 문서를 참고하면 쉽습니다.
OTP 앱 vs 보안 키, 뭐가 더 좋을까요?
2단계 인증 수단으로 OTP 앱과 물리 보안 키 중에 뭘 선택해야 할지 고민하는 분들이 많을 겁니다. 저도 한참 고민했어요. 결론부터 말씀드리면, 가장 안전한 건 물리 보안 키입니다. OTP 앱은 스마트폰 자체가 해킹당하면 뚫릴 위험이 조금이나마 있죠. 하지만 물리 보안 키는 별도의 하드웨어라서 이런 위험이 훨씬 적습니다. 복제도 거의 불가능하고요. 저는 보안에 민감한 작업은 물리 보안 키를 사용하고, 일상적인 용도로는 OTP 앱을 활용하고 있습니다. 물론 물리 보안 키를 잃어버리면 로그인 자체가 어려워질 수 있다는 단점도 있습니다. 그래서 복구 코드 백업은 필수 중의 필수입니다. 어떤 방식을 선택하든, '귀찮더라도 나를 한 번 더 보호해 준다'는 생각으로 접근하는 게 좋다고 생각해요.
포인트: 물리 보안 키가 더 안전하지만, 편의성을 고려해 OTP 앱과 조합하는 것도 방법입니다.
이건 꼭 피해야 할 실수입니다
깃허브 보안을 강화했더라도 몇 가지 흔한 실수를 하면 도로아미타불이 될 수 있습니다. 저는 후배가 겪은 일을 보면서 몇 가지 교훈을 얻었죠. 첫째, 절대로 개인 접근 토큰(PAT)이나 SSH 프라이빗 키를 코드 저장소에 직접 올리지 마세요. `.gitignore` 파일에 반드시 포함해서 버전 관리 대상에서 제외해야 합니다. 이게 진짜입니다. 둘째, '너무 복잡해서' 또는 '급해서' 보안 설정을 건너뛰는 겁니다. 특히 AI 모델 학습 중에는 보안보다 개발 속도가 중요하다고 생각할 수 있는데, 그때 한 번 뚫리면 정말 모든 것이 망가질 수 있습니다. 셋째, 깃허브에서 보내는 보안 알림 메일을 무시하는 겁니다. '누군가 당신의 계정으로 로그인 시도를 했습니다' 같은 메일이 오면 꼭 확인해야 합니다. 저는 예전에 무시했다가 큰일 날 뻔했어요. 마지막으로, 회사에서 지급하는 노트북이나 개발 환경을 개인 용도로 사용하다가 보안이 뚫리는 경우도 종종 있습니다. 개인 계정과 업무 계정은 철저히 분리하고, 각 계정에 맞는 보안 수칙을 적용하는 게 중요합니다.
포인트: 설정만큼이나 중요한 건 꾸준한 관심과 실수하지 않는 습관입니다.
실제 진행 순서
- 11단계: 2단계 인증(2FA) 설정하기깃허브 계정에 로그인한 뒤 'Settings' → 'Password and authentication' 메뉴에서 2FA를 활성화하세요. OTP 앱(Google Authenticator, Authy 등)을 연동하거나, 물리 보안 키(YubiKey 등)를 등록하는 방식이 가장 안전합니다. 복구 코드도 꼭 백업해두세요. 저는 OTP 앱을 쓰는데, 로그인할 때마다 폰으로 코드를 입력해야 해서 조금 번거롭지만 확실히 안심이 되더라고요.
- 22단계: SSH 키로 깃허브 접속하기HTTPS 대신 SSH 프로토콜로 깃허브에 접속하는 습관을 들이세요. 로컬 환경에서 SSH 키를 생성한 뒤 깃허브 'Settings' → 'SSH and GPG keys'에 등록하면 됩니다. 비밀번호를 직접 입력할 필요 없이 키 파일로 인증하기 때문에 훨씬 안전하죠. 특히 자동화 스크립트나 CI/CD 파이프라인에서 깃허브를 연동할 때 SSH 키는 필수적입니다. 처음엔 좀 헤맸지만, 한 번 해두면 계속 편해요. 깃허브 공식 문서(https://docs.github.com/ko/authentication/connecting-to-github-with-ssh)를 참고하면 쉽게 따라 할 수 있습니다.
- 33단계: 개인 접근 토큰(PAT) 주기적으로 검토 및 삭제하기깃허브 'Settings' → 'Developer settings' → 'Personal access tokens' 메뉴에서 현재 발급된 PAT 목록을 확인하세요. 사용 목적이 불분명하거나, 더 이상 사용하지 않는 토큰은 바로 삭제해야 합니다. PAT는 비밀번호와 동일한 권한을 가질 수 있으므로, 항상 최소한의 권한만 부여하고 만료 기간을 짧게 설정하는 것이 좋습니다. 저는 3개월마다 한 번씩 들어가서 토큰 목록을 확인하고 불필요한 건 바로 삭제하고 있습니다. 이게 진짜 중요해요.
독자들이 많이 물어보는 거
Q. 깃허브 2단계 인증(2FA)은 꼭 설정해야 하나요?
A. 네, 2단계 인증은 깃허브 계정 보안의 가장 기본적인 방어선입니다. 비밀번호가 유출되더라도 추가 인증 없이는 로그인할 수 없게 막아주므로 반드시 설정하는 것이 좋습니다.
Q. SSH 키는 왜 사용해야 하나요? 그냥 비밀번호로 접속하면 안 되나요?
A. 비밀번호는 탈취될 위험이 있지만, SSH 키는 암호화된 키 쌍으로 인증하기 때문에 더 안전합니다. 특히 반복적인 접속이나 자동화 환경에서는 비밀번호 노출 위험을 줄여주고 편리하게 접속할 수 있게 해줍니다.
Q. 개인 접근 토큰(PAT)을 어떻게 관리해야 할까요?
A. PAT는 사용 목적에 따라 최소한의 권한만 부여하고, 만료 기간을 짧게 설정하는 것이 중요합니다. 더 이상 사용하지 않는 토큰은 즉시 삭제하고, 깃허브 'Personal access tokens' 메뉴에서 주기적으로 사용 현황을 검토하세요.
Q. 물리 보안 키가 OTP 앱보다 더 안전한가요?
A. 일반적으로 물리 보안 키는 OTP 앱보다 해킹 위험이 적어 더 안전하다고 평가받습니다. 스마트폰 해킹으로부터 자유롭기 때문이죠. 하지만 분실 위험과 가격을 고려하여 자신에게 맞는 방식을 선택하는 것이 좋습니다.
Q. 깃허브 보안 관련 알림 메일은 꼭 확인해야 하나요?
A. 네, 깃허브에서 보내는 보안 관련 알림 메일은 반드시 확인해야 합니다. 비정상적인 로그인 시도나 권한 변경 등 중요한 보안 이슈를 알려주므로, 빠르게 대처하여 피해를 막을 수 있습니다.
참고한 자료
- GitHub Docs - Connecting to GitHub with SSH
- GitHub Docs - Securing your account with two-factor authentication (2FA)
- GitHub Docs - Managing your personal access tokens