피드로 돌아가기
Dev.toSecurity
원문 읽기
authorized_keys 지옥 탈출, SSH Certificate로 구현하는 무상태 인증 체계
Why SSH Key Management Is Broken and How Certificates Fix It
AI 요약
Context
개별 서버마다 public key를 등록하는 authorized_keys 방식의 운영 한계. 사용자 증가에 따른 N*M 설정 복잡도 증가 및 퇴사자 계정 회수 누락 위험. 호스트 핑거프린트 수동 확인 과정의 보안 취약성.
Technical Solution
- 사용자 및 호스트 인증을 위한 전용 Certificate Authority(CA) 키 쌍 구축
- CA가 사용자·호스트의 public key에 서명하여 유효기간과 권한이 포함된 인증서 발행
- 서버의 sshd_config에 TrustedUserCAKeys 설정을 추가하여 개별 키 등록 없이 CA 신뢰 기반 인증 구조 설계
- 클라이언트의 known_hosts에 @cert-authority 설정을 추가하여 호스트 핑거프린트 수동 확인 단계 제거
- 인증서 유효기간을 8~24시간으로 짧게 설정하여 키 유출 시 피해 범위를 최소화하는 단기 인증 전략 도입
- step-ca 또는 HashiCorp Vault와 같은 도구를 활용한 인증서 서명 워크플로우 자동화
Key Takeaway
신뢰의 중심을 개별 엔드포인트에서 중앙 집중형 CA로 이동시켜 인증 관리의 복잡도를 O(N*M)에서 O(1)로 최적화하는 설계 원칙.
실천 포인트
관리 서버가 소수를 넘어가는 시점에 SSH Certificate 도입을 검토하고, 특히 사용자 인증서는 24시간 미만의 짧은 수명을 유지할 것