처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.04 38

SSH 키 대신 SSH 인증서를 쓰면 서버 관리가 이렇게 편해져요

Hacker News 원문 보기

SSH 키 관리, 솔직히 귀찮잖아요

서버를 관리하는 개발자라면 SSH 공개키 인증은 매일 쓰는 기능이에요. .ssh/authorized_keys 파일에 공개키를 등록하고, 개인키로 접속하는 방식이죠. 근데 이거, 서버가 한두 대일 때는 괜찮은데 규모가 커지면 진짜 골치 아파져요. 새로운 팀원이 들어오면 모든 서버에 키를 추가해야 하고, 누군가 퇴사하면 또 모든 서버에서 키를 제거해야 하고. 서버가 100대라면? 자동화 스크립트를 돌린다 해도 번거롭기는 마찬가지예요.

이런 문제를 깔끔하게 해결하는 방법이 있는데, 바로 SSH 인증서(SSH Certificates)예요. OpenSSH에 이미 내장되어 있는 기능인데 의외로 모르는 분들이 많더라고요.

SSH 인증서가 뭔데?

일반 SSH 키 인증은 "이 공개키를 가진 사람은 접속을 허용한다"는 방식이에요. 서버가 각 사용자의 공개키를 직접 알고 있어야 하죠. 반면 SSH 인증서는 CA(인증 기관)라는 개념을 도입해요. 웹에서 HTTPS 인증서를 발급하는 그 CA와 같은 원리예요.

동작 방식을 쉽게 설명하면 이래요. 먼저 CA 키 쌍을 하나 만들어요. 그리고 서버에는 "이 CA가 서명한 인증서를 가진 사람은 다 믿어"라고 설정해요. 사용자가 접속하고 싶으면, 자기 공개키를 CA에 가져가서 서명을 받아요. 그러면 CA가 "이 사람은 확인했어요"라는 도장이 찍힌 인증서를 발급해주는 거예요. 서버는 그 인증서의 CA 서명만 확인하면 되니까, 개별 사용자의 공개키를 일일이 등록할 필요가 없어지는 거죠.

실제 설정도 생각보다 간단해요. CA 키 쌍 생성은 ssh-keygen -t ed25519 -f ca_key 한 줄이면 되고, 사용자 인증서 발급은 ssh-keygen -s ca_key -I user_name -n login_name -V +52w user_key.pub 이런 식이에요. 여기서 -V +52w는 인증서 유효기간을 52주(1년)로 설정한다는 뜻이에요. 서버 쪽 설정은 sshd_configTrustedUserCAKeys /etc/ssh/ca_key.pub 한 줄만 추가하면 끝이에요.

기존 방식과 비교하면 뭐가 좋을까

가장 큰 장점은 확장성이에요. 서버가 몇 대든 CA 공개키 하나만 배포하면 돼요. 새 팀원이 오면 CA에서 인증서 하나 발급해주면 모든 서버에 바로 접속할 수 있어요. authorized_keys 파일을 서버마다 수정할 필요가 없으니까요.

두 번째는 만료 기능이에요. 일반 SSH 키는 만료 개념이 없어요. 한번 등록하면 누가 지울 때까지 영원히 유효하죠. 인증서는 발급할 때 유효기간을 설정할 수 있어요. 예를 들어 외부 협력업체 개발자에게 2주짜리 인증서를 발급하면, 2주 후에 자동으로 접속이 차단돼요. 별도로 키를 제거하는 작업이 필요 없어요.

세 번째는 호스트 인증이에요. 사용자가 서버를 인증하는 데도 인증서를 쓸 수 있거든요. 처음 서버에 접속하면 "이 호스트를 신뢰하시겠습니까?" 하고 물어보는 거 있잖아요. 보통 yes 치고 넘어가는데, 사실 이건 MITM(중간자 공격)에 취약한 순간이에요. 호스트 인증서를 쓰면 CA가 서명한 서버만 자동으로 신뢰하니까 이 문제가 해결돼요.

업계에서는 어떻게 쓰고 있나

SSH 인증서를 잘 활용하는 대표적인 도구가 HashiCorp Vault예요. Vault의 SSH Secrets Engine은 사용자가 요청할 때마다 짧은 유효기간의 인증서를 동적으로 발급해줘요. 보통 TTL(Time to Live)을 30분이나 1시간으로 설정해서, 인증서가 탈취되더라도 피해를 최소화하는 방식이에요.

Smallstep이라는 오픈소스 프로젝트도 SSH 인증서 관리를 쉽게 해주는 도구예요. 그리고 대형 클라우드 환경에서는 Netflix의 BLESS, Uber의 Pam Ussh 같은 내부 도구들이 SSH 인증서 기반으로 동작하고 있어요. Google도 내부적으로 SSH 인증서를 대규모로 활용하고 있다고 알려져 있고요.

한국 개발자에게 주는 시사점

국내 스타트업이나 중소 규모 팀에서 서버를 운영하고 있다면, SSH 인증서 도입을 한 번 검토해볼 만해요. 특히 팀원 변동이 잦거나, 여러 환경(개발/스테이징/프로덕션)에 걸쳐 접근 관리를 해야 하는 경우에 효과가 커요. 추가 소프트웨어 설치 없이 OpenSSH만으로 바로 쓸 수 있다는 것도 큰 장점이고요.

다만 CA 키의 보안 관리가 핵심이에요. CA 개인키가 유출되면 아무나 인증서를 발급할 수 있으니까, 이건 반드시 HSM이나 보안이 강화된 환경에서 관리해야 해요. 소규모 팀이라면 CA 키를 오프라인으로 보관하고, 인증서 발급이 필요할 때만 꺼내 쓰는 방식도 괜찮아요.

마무리

SSH 인증서는 이미 오래전부터 OpenSSH에 있던 기능인데, 알면 서버 관리가 훨씬 편해지는 숨은 보석 같은 존재예요.

혹시 이미 SSH 인증서를 실무에서 쓰고 계신 분이 있다면, 도입 과정에서 겪은 시행착오가 궁금해요. 어떤 부분이 가장 까다로웠나요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.