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
'CE' 카테고리의 다른 글
| SSH 의 Flowchart (1) | 2026.01.18 |
|---|---|
| FIPS - Federal Information Processing Standard (1) | 2026.01.18 |
| C Runtime (CRT) 이란 - CRT, POSIX, System call, ABI (0) | 2026.01.16 |
| 특수키의 role과 notation - Special Key (0) | 2026.01.09 |
| Shell (Python Shell 포함) 의 키보드 단축키에 대해 (0) | 2026.01.07 |