SSH
SSH(Secure Shell)는 멀리 있는 서버에 암호화된 통로로 접속해 명령을 내리는 방법이에요. 비밀번호보다 공개키·개인키 한 쌍으로 들어가는 방식이 안전해요.
목차 보기
SSH(Secure Shell)는 멀리 있는 서버에 암호화된 통로로 접속해 명령을 내리는 방법이에요. 서버 방에 직접 가지 않고, 내 PC 터미널에서 서버 키보드를 두드리는 것과 같아요. 오가는 글자는 모두 암호로 바뀌어서, 중간에 누가 엿들어도 읽을 수 없어요.
글쓴이 서순명(솔리드그루 이사 · 퓨쳐인프라 운영) · 2026년 10월 29일 직접 실행·공식 문서 대조
한눈에 보기
SSH는 어떻게 지켜 주나요?
SSH가 나오기 전에는 텔넷 같은 방식을 썼어요. 텔넷은 비밀번호까지 그대로 흘려보내요. 같은 와이파이에 있는 사람이 엿보면 그대로 읽혀요.
SSH는 접속하자마자 내 PC와 서버가 암호 열쇠를 나눠 가져요. 그다음부터 오가는 모든 글자를 그 열쇠로 잠가요. 이 약속은 인터넷 표준 문서 RFC 4251에 정리돼 있어요. 기본 포트 22번도 RFC 4253에 적혀 있어요.
비밀번호와 키는 뭐가 달라요?
키 방식은 자물쇠와 열쇠로 생각하면 쉬워요. 공개키는 자물쇠예요. 서버에 걸어 둬요. 남이 봐도 괜찮아요. 개인키는 열쇠예요. 내 PC에만 두고 절대 남에게 주지 않아요.
| 구분 | 비밀번호 | 키(공개키·개인키) |
|---|---|---|
| 들어가는 법 | 칠 때마다 입력 | 개인키 파일이 있으면 바로 |
| 맞히기 공격 | 짧으면 뚫릴 수 있어요 | 사실상 맞힐 수 없어요 |
| 서버에 남는 것 | 비밀번호(해시) | 공개키(자물쇠)만 |
| 잃어버리면 | 다시 정하면 돼요 | 새 키를 만들어 서버에 다시 등록해요 |
직접 해 보기 — 키 만들기부터 접속까지
2026년 10월 29일 22시 52분(한국 시각)에 직접 돌렸어요. 윈도우 11 PC의 Docker Desktop에서 ubuntu:24.04 컨테이너 두 대를 같은 가상 네트워크에 띄웠어요. 한 대는 서버(sshserver, OpenSSH 9.6p1), 한 대는 내 PC 역할(client)이에요. 실습용 키는 컨테이너 안에서만 만들고 끝나면 컨테이너째 지웠어요.
1단계. 키 한 쌍 만들기
[client]$ ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519 -C demo@client Generating public/private ed25519 key pair. Your identification has been saved in /root/.ssh/id_ed25519 Your public key has been saved in /root/.ssh/id_ed25519.pub The key fingerprint is: SHA256:iOM2…(가림) demo@client [client]$ ls -l ~/.ssh -rw------- 1 root root 399 Oct 29 13:52 id_ed25519 -rw-r--r-- 1 root root 93 Oct 29 13:52 id_ed25519.pub
파일 두 개가 생겨요. id_ed25519가 개인키(열쇠)예요. 권한이 -rw-------라서 나만 읽을 수 있어요. .pub가 붙은 쪽이 공개키(자물쇠)예요. 실습에서는 비밀번호 없이(-N "") 만들었지만, 내 PC에서는 키에 암호를 거는 게 좋아요.
2단계. 등록 전에 접속해 보기
[client]$ ssh demo@sshserver whoami Warning: Permanently added 'sshserver' (ED25519) to the list of known hosts. demo@sshserver: Permission denied (publickey,password).
첫 줄은 처음 보는 서버의 지문을 기억해 뒀다는 뜻이에요. 다음에 지문이 바뀌면 경고가 떠요. 둘째 줄은 거절이에요. 서버에 아직 자물쇠(공개키)를 걸지 않았기 때문이에요.
3단계. 공개키를 서버에 걸고 다시 접속
# 공개키 한 줄을 서버의 /home/demo/.ssh/authorized_keys 에 붙여 넣기 # (보통은 ssh-copy-id demo@서버주소 로 해요) [client]$ time ssh demo@sshserver "whoami; hostname; uptime" demo sshserver (uptime 줄 생략) real 0m0.130s [server 로그] Accepted publickey for demo from 172.20.0.3 port 34488 ssh2: ED25519 SHA256:(가림)
이번엔 비밀번호 없이 0.13초 만에 들어가 명령 결과가 돌아왔어요. 서버 로그에도 "공개키로 받아들였다"는 줄이 찍혔어요. 같은 PC 안의 컨테이너끼리라 빨랐어요. 실제 서버는 거리만큼 더 걸려요.
윈도우에서도 같아요. 이 PC의 PowerShell에서 ssh -V를 치니 OpenSSH_for_Windows_9.5p2가 나왔어요. 마이크로소프트 문서는 윈도우 10(1809) 이상에서 OpenSSH를 쓸 수 있다고 안내해요.
자주 만나는 메시지
| 메시지 | 뜻 | 해 볼 것 |
|---|---|---|
| Permission denied (publickey) | 서버가 내 키를 모르거나 사용자 이름이 틀렸어요 | 사용자 이름, 공개키 등록, -i 개인키경로 확인 |
| Connection timed out | 서버까지 길이 막혔어요 | 서버 주소, 방화벽에서 22번 포트가 열렸는지 확인 |
| Connection refused | 서버는 있는데 SSH 프로그램이 안 떠 있어요 | 서버에서 sshd 가 켜져 있는지 확인 |
| REMOTE HOST IDENTIFICATION HAS CHANGED | 기억해 둔 지문과 서버 지문이 달라요 | 서버를 새로 만든 게 맞으면 ssh-keygen -R 주소로 옛 기록을 지워요 |
자주 하는 오해
| 오해 | 실제 |
|---|---|
| 공개키도 숨겨야 해요 | 공개키는 자물쇠라서 보여도 괜찮아요. 숨길 건 개인키예요. |
| SSH는 리눅스 전용이에요 | 윈도우·맥에도 기본으로 들어 있어요. |
| 포트만 바꾸면 안전해요 | 자동 공격이 조금 줄 뿐이에요. 키 방식과 접속 IP 제한이 더 효과가 커요. |
| 개인키를 여러 PC에 복사해 써요 | PC마다 키를 따로 만들고 공개키를 각각 등록하는 게 안전해요. |
퓨쳐인프라에서는
퓨쳐인프라 가상서버는 만들 때 SSH 공개키를 등록할 수 있어요. 등록하면 서버가 뜨자마자 root로 바로 접속해요. 기본 방화벽은 무료이고, 처음엔 모든 포트가 닫혀 있어요. 필요한 포트만 열면 돼요. SSH는 내 IP에서만 열어 두는 식이에요.
요금은 분 단위예요. Nano(1코어·1GB·30GB)는 한 시간에 12원이에요(2026-10-29 요금표 기준, 부가세 포함). 연습용 서버를 잠깐 만들어 접속해 보고 지워도 몇십 원이에요.
자주 묻는 질문
SSH 기본 포트는 몇 번이에요?
22번이에요. 서버에서 바꿨다면 ssh -p 포트번호 사용자@주소로 접속해요.
키는 어떤 종류로 만들어요?
요즘은 ssh-keygen -t ed25519를 많이 써요. 공개키가 한 줄(이 실습에서 93바이트)로 짧아요. 옵션은 ssh-keygen 매뉴얼에 나와 있어요.
개인키를 잃어버리면 어떻게 해요?
새 키를 만들어 서버에 공개키를 다시 등록해요. 서버에 들어갈 다른 수단이 없으면 막힐 수 있으니 키를 따로 백업해 두세요.
SSH로 파일도 옮길 수 있어요?
네. SSH 통로를 쓰는 SFTP로 파일을 주고받아요.
이 글의 출처(2026-10-29 확인)
- RFC 4251 · RFC 4253 — SSH 구조, 포트 22
- Microsoft Learn, Windows OpenSSH — 윈도우 지원 버전
- ssh-keygen(1) — 키 만들기 옵션
- 실행 결과 — 글쓴이가 컨테이너 두 대로 직접 돌린 값(지문 일부 가림)
관련 용어
SFTP · 포트 · 방화벽 · 리눅스 · 우분투 · 공인 IP
- 작성: 서순명(솔리드그루 이사 · 퓨쳐인프라 — 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 를 운영) · 작성일 2026년 10월 29일
- 운영사: 솔리드그루 · 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계: 실행 결과는 2026-10-29 윈도우 11 PC의 Docker Desktop에서 띄운 ubuntu:24.04 컨테이너 두 대(같은 가상 네트워크) 기준이에요. 접속 시간은 1회 측정이고, 실제 서버는 거리와 회선에 따라 더 걸려요.
- 이해관계: 퓨쳐인프라는 SSH로 접속하는 가상서버를 파는 회사예요. 이 글에는 자사 서비스 안내가 들어 있어요.
연관 서비스
많이 본 글
-
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글 0
로그인하면 댓글을 남길 수 있습니다.