본문으로 건너뛰기

SSH 키 생성

SSH Key Generator

주석을 넣은 OpenSSH 키 쌍을 만들고 지문을 보여 줍니다. 개인키는 암호문구 없이 나오므로 필요하면 ssh-keygen -p로 직접 걸어야 합니다.

같은 키 생성기를 OpenSSH 탭에서 연 것입니다. `authorized_keys` 한 줄과 그에 맞는 `openssh-key-v1` 개인키를 브라우저에서 만듭니다. 기본은 Ed25519이고, 요구하는 서버가 있으면 ECDSA와 RSA도 씁니다.

🔒 브라우저 안에서만 처리sshkeyscrypto
알고리즘

작고 빠르고 현대적입니다. 2014년 이후 SSH의 기본값입니다.

OpenSSH 공개키 줄 끝에 붙습니다.

키는 이 브라우저의 WebCrypto(crypto.subtle.generateKey)가 이 탭에서 만들고, 탭 밖으로 나가지 않습니다. 전송하지도, 기록하지도, 저장하지도 않습니다. 출력 형식은 이 프로젝트의 테스트에서 OpenSSH 자신과 대조해 확인합니다. 가능하다면 개인키를 보관할 그 기계에서 생성하세요. 브라우저 탭에 존재한 키는 그 탭의 메모리에 존재한 것입니다.

사용 방법

  1. 주석을 답니다

    공개키 줄 끝에 붙습니다. 관례는 `you@machine`입니다. 이 년 뒤에 항목이 열댓 개인 `authorized_keys`에서 어느 줄이 내 것인지 찾게 해 주는 것이 그것입니다.

  2. 공개키를 서버에 넣습니다

    한 줄을 서버의 `~/.ssh/authorized_keys`에 덧붙이면 됩니다. 개인키는 손에 남습니다.

  3. 개인키를 저장하고 잠급니다

    `id_key`로 내려받은 뒤 `chmod 600 id_key`를 하세요. ssh는 다른 계정이 읽을 수 있는 개인키를 거절합니다. 그리고 `ssh-keygen -p -f id_key`로 암호구를 겁니다.

자주 묻는 질문

개인키가 왜 암호화되어 있지 않나요?

`openssh-key-v1` 키를 암호화하려면 bcrypt-pbkdf가 필요한데, 여기서 그걸 하려면 모든 파라미터에 대해 OpenSSH와 대조 검증할 수 없는 KDF 구현을 내세워야 합니다. 로컬에서 `ssh-keygen -p`로 암호구를 거는 편이 OpenSSH 자신의 코드를 쓰는 것이라 분명히 낫습니다.

정말 브라우저에서 SSH 키를 만들어도 되나요?

버릴 서버나 실습 환경, 또는 터미널이 없을 때라면 합리적인 편의입니다. 아무것도 전송하지 않고, 출력 형식은 이 프로젝트 테스트에서 `ssh-keygen` 자신과 대조합니다. 운영을 여는 키라면 그 키를 보관할 기계의 터미널을 쓰세요.

서버가 계속 비밀번호를 묻습니다.

대개 권한 문제입니다. 서버에서 `~/.ssh`는 700, `authorized_keys`는 600이어야 하고, 내 쪽 개인키는 600이어야 합니다. `ssh -v`가 어느 검사에서 걸렸는지 알려 주는데, 거의 항상 이것입니다.

키 하나를 여러 서버에 써도 되나요?

써도 되고 흔한 방식입니다. 대가는 사고 반경입니다. 개인키 하나가 새면 그 키가 등록된 모든 곳이 열립니다. 환경마다 키를 나누면 — 노트북에서 운영으로, CI에서 스테이징으로 — 등록 한 줄씩만 더 쓰고 피해 범위를 줄일 수 있습니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.