본문 바로가기
목차
CE

SSH 키 알고리즘 비교 정리

by ds31x 2026. 1. 18.
728x90
반응형

1. 서론

이 글에서는 ~/.ssh/id_* 형태로 흔히 접하는 SSH 키 알고리즘들을 간단히 비교해봄.

 

SSH 키 알고리즘 선택은 단순히 “더 안전한 알고리즘”을 고르는 것이 아님.

실무에서는 다음 요소들이 고려됨:

  • 암호학적 보안성
  • GitHub 등 개발 플랫폼의 정책
  • 클라우드 환경의 자동화/부트스트랩 안정성
  • FIPS와 같은 규정/감사 요구사항
  • 레거시 시스템과의 호환성

2. 알고리즘별 개요

id_rsa RSA Rivest–Shamir–Adleman 1977 범용성·호환성 최고
id_dsa DSA Digital Signature Algorithm, FIPS 186 1991 SHA-1 의존
id_ecdsa ECDSA Elliptic Curve Digital Signature Algorithm 2005 ECC 기반
id_ed25519 Ed25519 EdDSA over Curve25519 2011 OpenSSH 기본 권장
id_xmss XMSS eXtended Merkle Signature Scheme, RFC 8391 2018 해시 기반, 양자내성

 


3. 보안성 기준 정렬

대략적으로 다음과 같음:

XMSS > Ed25519 > ECDSA > RSA > DSA
  • XMSS: 해시 기반 서명으로 양자 공격에 안전하지만 상태 관리 등이 필요하고 아직 실무에서 사용하기엔 제약이 큰 편임.
  • Ed25519: 결정론적 서명, 안전한 파라미터 고정, side-channel에 강한 특성을 보임.
  • ECDSA: 수학적으로 강력하나 난수 구현 품질 의존성이 큼. Ed25519로 대체되고 있음.
  • RSA: 키 길이를 충분히 키우면 여전히 안전하지만 비효율적인 측면이 있음.
  • DSA: SHA-1 고정 구조로 현대 기준에서는 부적합 (비추천)

4. GitHub에서 많이 사용되는 알고리즘

4.1 GitHub 실사용 기준 정렬

Ed25519 > RSA > ECDSA > XMSS > DSA

4.2 GitHub 관점에서의 특징

  • Ed25519 (EdDSA over Curve25519)
    • GitHub 공식 권장
    • 신규 키 등록의 사실상 표준
    • 키가 짧고 빠르며 실수 여지가 적음
  • RSA (Rivest–Shamir–Adleman)
    • 기존 계정과 레거시 키에서 여전히 다수 사용
    • ssh-rsa(SHA-1)는 더이상 사용하면 안 됨. rsa-sha2-256/512만 허용
  • ECDSA
    • 사용 가능하지만 Ed25519 이후 신규 사용 감소
  • DSA / XMSS
    • GitHub에서 지원하지 않음

GitHub 기준으로 보면 개발자·CI/CD 환경에서는 Ed25519가 정답에 가까움.


5. Cloud Computing 환경에서 애용되는 알고리즘

대상: AWS, GCP, Azure, Kubernetes, VM·Bastion Host 운영

5.1 클라우드 실무 기준 정렬

RSA > Ed25519 > ECDSA > XMSS > DSA

5.2 클라우드에서 RSA가 여전히 많이 사용되는 이유

bootstrap 단계에서의 안정성

 

bootstrap 단계란 다음을 의미:

  • VM이 막 생성되어 초기 부팅된 상태
  • 패키지 업데이트, 보안 설정 미적용
  • 접근 수단이 SSH 하나뿐인 상태
Bootstrap 단계에서는
암호학적으로 가장 좋은 알고리즘 보다
문제를 일으킬 가능성이
가장 낮은 알고리즘
이 중요.

 

RSA가 유리한 이유는 다음과 같음:

  • 거의 모든 SSH 스택에서 기본 지원
  • cloud-init, Terraform, Ansible, Packer 등이 사실상 RSA를 전제로 설계
  • 문제 발생 시 디버깅이 쉬움

실무에서 흔히 사용하는 전략은 다음과 같음.

부트스트랩 단계: RSA
운영 단계: Ed25519 추가

 

https://ds31x.blogspot.com/2023/07/term-bootstrap.html

 

Term: bootstrap (부트스트랩)

원래의 부트스트랩은 Boot+strap으로, 긴 부츠의 뒷부분에 달린 고리를 뜻함. 다음의 관용어구에서 그 의미를 알 수 있음. 'pull one's own by one's bootstrap' : 불가능한 일을 해낸다는 뜻을 가짐. 그 의미

ds31x.blogspot.com


6. FIPS 관점에서의 알고리즘 선택

2026.01.18 - [CE] - FIPS - Federal Information Processing Standard


7. 결론

관점 핵심 기준 권장 알고리즘
GitHub / 개발자 환경 현대적 보안·편의성 Ed25519
클라우드 부트스트랩 실패 확률 최소화 RSA
클라우드 운영 성능/현대성 Ed25519 (RSA 병행)
FIPS 환경 규정 준수 RSA (조건부 ECDSA)
연구·미래 대비 양자내성 XMSS
  • RSA는 “가장 안전해서”가 아니라
    가장 문제가 안 되기 때문에 여전히 널리 쓰임.
  • Ed25519는 현재 기술적으로 가장 잘 설계된 SSH 키 알고리즘이며
    GitHub와 현대 개발 환경의 사실상 표준.
  • 클라우드와 기업 환경에서는
    부트스트랩 안정성과 FIPS 규정이 알고리즘 선택에 매우 중요.

같이 보면 좋은 자료들

2023.12.27 - [utils/git and github] - [ssh-keygen] ssh 관련 private key와 public key 생성하기.

 

[ssh-keygen] ssh 관련 private key와 public key 생성하기.

ssh (secure shell)ssh는 secure shell의 약자로 네트워크 상에서 암호화된 통신을 위한 프로토콜 (및 이를 구현한 프로그램)을 가르킴. 주로 원격지의 장비에 보안이 보장된 접속을 제공하며 이를 위해

ds31x.tistory.com

 

728x90