서버 마련·설치
🔑SSH 키로 서버 로그인
비밀번호 대신 키 한 쌍으로 로그인해 서버를 더 안전하게 — 키 만들기부터 등록·접속·비밀번호 끄기·문제 해결까지.
마지막 업데이트 2026-07-06
비밀번호 대신 “키”로 로그인하면 훨씬 안전하고, 한 번 설정하면 매번 비밀번호를 넣지 않아도 됩니다. 키는 열쇠(개인 키)와 자물쇠(공개 키) 한 쌍입니다 — 자물쇠는 서버에, 열쇠는 내 PC 에만 둡니다.
절대 규칙
개인 키(private key)는 누구에게도 보내지 않고 내 PC 에만 둡니다. 서버에 올리는 것은 공개 키(public key) 뿐입니다.
0 · 키 로그인이 뭔가 — 열쇠와 자물쇠
비밀번호는 “아는 것”, 키는 “가진 것”입니다. 가진 것이 훨씬 뚫기 어렵습니다.
- 공개 키(자물쇠) — 서버에 둡니다. 남이 봐도 무방합니다.
- 개인 키(열쇠) — 내 PC 에만 둡니다. 이 열쇠가 서버의 자물쇠를 엽니다.
접속할 때 서버는 “이 자물쇠에 맞는 열쇠를 가졌는지” 확인합니다.
1 · 키 한 쌍 만들기
운영체제에 따라 방법이 다릅니다. 한 번만 만들면 됩니다.
맥·리눅스 터미널에서
ssh-keygen -t ed25519 -C "내메모"
# 저장 위치를 물으면 그냥 Enter(기본값), 암호(passphrase)는 넣어도·비워도 됨끝나면 두 파일이 생깁니다.
- ~/.ssh/id_ed25519 — 개인 키. 절대 밖으로 내보내지 않습니다.
- ~/.ssh/id_ed25519.pub — 공개 키. 이 파일 내용을 서버에 올립니다.
공개 키 내용을 화면에 띄워 복사합니다.
cat ~/.ssh/id_ed25519.pub윈도우 PuTTYgen 으로
- 1PuTTY 와 함께 설치되는 PuTTYgen 실행.
- 2키 종류 EdDSA(또는 RSA 2048+) 선택 후 [Generate] — 마우스를 빈 곳에서 움직이면 생성됩니다.
- 3개인 키는 [Save private key] 로 .ppk 파일로 저장해 내 PC 에만 보관.
[Save public key] 버튼 주의
그 파일은 PuTTY 전용 형식이라 서버의 authorized_keys 에 넣으면 로그인이 안 됩니다. 대신 PuTTYgen 창 위쪽의 “Public key for pasting into OpenSSH authorized_keys file” 상자 텍스트를 통째로 복사해서 쓰세요.
2 · 공개 키(자물쇠)를 서버에 등록
공개 키 한 줄을 서버의 ~/.ssh/authorized_keys 에 넣습니다.
방법 A · 한 줄 명령 (맥·리눅스, 가장 쉬움)
비밀번호 접속이 아직 되는 상태에서:
ssh-copy-id ubuntu@example.com
# 비밀번호를 한 번 입력하면 공개 키가 등록됨방법 B · 직접 붙여넣기 (윈도우·수동)
서버에 (아직 비밀번호로) 접속한 상태에서:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# 복사해 둔 공개 키 한 줄을 붙여넣고 저장(Ctrl+O, Enter)·종료(Ctrl+X)
chmod 600 ~/.ssh/authorized_keys권한이 핵심입니다
.ssh 는 700, authorized_keys 는 600 이어야 합니다. 권한이 헐거우면 SSH 가 보안상 그 키를 무시해서, 키를 올바로 넣었는데도 로그인이 안 됩니다.
다음 절 전에 — 새 창에서 키 로그인부터 확인
비밀번호 로그인을 끄기 전에, 반드시 새 접속 창을 하나 더 열어 키로 로그인이 되는지 확인하세요. 지금 접속한 창은 닫지 마세요.
3 · 개인 키(열쇠)로 접속
이제 비밀번호 없이 들어갑니다. 툴별로 개인 키를 지정하는 방법입니다.
맥·리눅스 터미널
ssh ubuntu@example.com
# 기본 위치(~/.ssh/id_ed25519)면 -i 없이
ssh -i ~/.ssh/parish-key ubuntu@example.com
# 다른 키 파일이면 -i 로 지정WinSCP
로그인 창 → 고급 → SSH → 인증 → 개인 키 파일 에서 .ppk 지정.
PuTTY
Connection → SSH → Auth → Credentials 에서 .ppk 지정 후 [Open]. 세션을 저장해두면 다음부터 두 번 클릭.
4 · 비밀번호 로그인 끄기 (선택·권장)
키 로그인이 확실히 되는 것을 확인한 뒤에만 진행합니다. 무차별 대입 공격을 원천 차단합니다.
“분명 껐는데 여전히 비밀번호로 들어와지는” 이유
많은 Ubuntu 22.04 이미지에는 /etc/ssh/sshd_config.d/50-cloud-init.conf 라는 덮어쓰기 파일이 있어 PasswordAuthentication yes 를 다시 켜 버립니다. 두 곳을 모두 확인·수정해야 합니다.
먼저 어디에 yes 가 있는지 확인:
sudo grep -r PasswordAuthentication /etc/ssh/sshd_config /etc/ssh/sshd_config.d/50-cloud-init.conf 안에 yes 가 보이면 그 파일도 no 로 고치고, 두 곳을 맞춘 뒤 SSH 를 다시 읽어들입니다.
sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf
# PasswordAuthentication no
sudo systemctl restart sshrestart 후 주의
기존 창은 그대로 두고 새 창으로 접속해 보세요. 이제 비밀번호를 물으면 안 되고, 키로만 들어와져야 정상입니다.
5 · 개인 키(열쇠) 보관 주의
열쇠 하나가 곧 서버 출입증입니다. 이것만 지키면 됩니다.
- 개인 키는 내 PC 밖으로 내보내지 마세요 — 이메일·메신저·클라우드 공유 금지.
- 암호(passphrase)를 걸어두세요 — 키 파일이 유출돼도 한 겹 더 막힙니다.
- PC 를 바꾸거나 담당자가 바뀌면 새 키를 등록하고, 서버의 authorized_keys 에서 옛 공개 키 줄을 지우세요.
- 여러 사람이 관리한다면 사람마다 각자 키를 등록하세요(누가 접속했는지 구분·회수가 쉬움).
? · 잠겼을 때 · 문제 해결
스스로 잠갔을 때의 탈출구
기존 창이 아직 열려 있다면 — 거기서 설정을 되돌리세요(창을 닫지 말라고 한 이유입니다). 모든 창이 닫혔고 못 들어간다면 — 대부분의 VPS 업체는 웹 콘솔에 “콘솔 접속” 또는 “VNC” 기능이 있어, SSH 없이 브라우저로 서버에 들어가 설정을 고칠 수 있습니다.
| 증상 | 원인 · 해결 |
|---|---|
| Permission denied (publickey) | 공개 키 미등록 또는 개인 키 미지정. 등록 여부와 -i 경로 확인 |
| 키를 넣었는데도 비밀번호를 물음 | ~/.ssh·authorized_keys 권한 오류 → chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys |
| 껐는데도 비밀번호로 로그인됨(Ubuntu) | 50-cloud-init.conf 덮어쓰기(4절) — 두 파일 모두 no |
| PuTTYgen 키인데 로그인 안 됨 | [Save public key] 파일이 아니라 “for pasting” 상자 텍스트를 등록(1절) |
| 공개/개인 키를 헷갈림 | 서버엔 공개 키(.pub), 내 PC 엔 개인 키 |
막히면 접속 툴 종류·오류 메시지와 함께 질의응답으로 문의하세요.