최근 많은 개발자가 GitHub에서 SSH(Secure Shell) 키 인증 오류로 인해 `git pull` 등의 작업이 갑자기 실패하는 문제를 겪었습니다. 특히 기존에 잘 작동하던 환경에서 아무런 변경 없이 발생한 오류라 혼란이 가중되었는데, 이는 개인 키(.pem)에 상응하는 공개 키(.pub) 파일이 사라졌을 때 GitHub의 SSH 프런트엔드가 특정 인증 요청을 거부하면서 발생한 것으로 보입니다.
OpenSSH는 공개 키 파일(.pub)의 존재 여부에 따라 두 가지 인증 흐름을 사용합니다. .pub 파일이 있으면 서버에 공개 키를 먼저 제시하여 승인을 받은 뒤 서명하는 방식을 따르고, .pub 파일이 없으면 사전 확인 없이 서명된 인증 요청을 즉시 전송합니다. 두 방식 모두 SSH 표준(RFC 4252)에 부합하며 일반적인 SSH 서버(sshd)는 둘 다 허용합니다. 그러나 이번 GitHub 오류 사례에서는 .pub 파일이 없는 상태에서 전송된 '직접 서명된 인증 요청'이 GitHub 서버에서 거부된 것으로 관찰되었습니다. 통제된 시험 결과, .pub 파일이 없을 때는 100% 실패했고, 있을 때는 100% 성공했습니다. GitHub 서버의 배너(서버 식별 정보)가 과거와 달라진 점으로 미루어 볼 때, GitHub 측의 SSH 프런트엔드 소프트웨어 변경이 원인일 가능성이 제기되고 있습니다.
이러한 문제는 개발자들에게 SSH 키 관리의 중요성을 다시금 일깨워주고 있습니다. 개인 키와 함께 대응하는 공개 키(.pub) 파일을 항상 유지하는 것이 안전하며, 문제가 발생했을 때는 `ssh-keygen -y -f [개인 키 경로] > [공개 키 경로].pub` 명령어를 통해 쉽게 재생성할 수 있습니다. 이번 사건은 GitHub와 같은 대규모 서비스에서도 예기치 않은 서버 측 변경이 클라이언트 동작에 영향을 미칠 수 있음을 보여주며, 개발 환경의 안정성을 위해 핵심 인증 파일들을 철저히 관리해야 함을 시사합니다.