SPACE LOGBOOK

OCEAN LOGBOOK

SSH를 이해하게 된 날의 대화

2026.06.24

SSH를 이해하게 된 날의 대화

2026.06.24

부절(符節)로 이해한 날

SSH · VPN · HTTPS · SSL — 어느 날 오후의 대화가 전부 연결된 순간 회고 SSH 보안

솔직히 말하면, 나는 SSH를 오래 써왔지만 제대로 이해한 적이 없었다. 서버에 접속할 때 ssh -i xxxxxxxx.pem ubuntu@서버주소 를 치고, GitHub에 Deploy Key를 등록하고, 잘 됐으면 넘어가고 — 그게 전부였다. 무언가 물어보면 “비대칭 암호화 기반의 보안 프로토콜”이라는 말을 앵무새처럼 읊을 수 있었지만 정작 왜 키가 두 개인지는 한 번도 제대로 생각해본 적이 없었다.

그러다 어느 날 오후, AI와 나눈 대화가 예상치 못하게 깨달음을 얻는 계기가 되었다.


첫 번째 물음 — 프라이빗 키는 언제 쓰는 거야?

시작은 SSH 관련 설명 글 하나를 읽다가 생긴 의문이었다. 비대칭 암호화에서 퍼블릭 키와 프라이빗 키를 각자 가지고 서로 교환한다는 설명이었는데 — 그럼 프라이빗 키는 도대체 어디서 쓰이는 건지가 영 헷갈렸다.

나
퍼블릭키와 프라이빗키가 생성이 되는데.. 서로 퍼블릭키를 교환해서 가지고 있는다고 해서.. 근데 프라이빗 키는 언제 사용하는 거야?
AI
Private Key는 “내가 나임을 증명”하는 도장입니다. 서버가 클라이언트에게 챌린지를 던지고, 클라이언트가 Private Key로 서명하면, 서버가 Public Key로 검증해서 “진짜 맞네” 하고 접속을 허용하는 구조예요.

그 설명을 듣고 나서 뭔가 아련하게 떠오르는 게 있었다.


그 순간 — “계약서를 찢어 나눠가진 것 같잖아”

옛날 사극에서 봤던 장면이었다. 계약을 맺을 때 문서에 도장을 찍고 반을 찢어 각자 보관했다가, 나중에 맞춰보고 진짜임을 확인하는 장면. 그게 퍼블릭 키와 프라이빗 키의 관계와 너무 닮아 보였다.

나
흡사 옛날에 계약서를 도장 찍고 반을 찢어 나눠가진 후 나중에 만나서 맞춰보고 정확히 들어맞으면 아 맞구나 하는 거 하고 비슷하네?
AI
완벽한 비유예요! 그걸 부절(符節)이라고 하죠. 처음 만들 때부터 수학적으로 묶인 한 쌍 — 그게 부절이에요.

부절(符節). 그 단어를 듣는 순간 뭔가 딱 맞아 떨어지는 느낌이 있었다. 추상적으로만 떠돌던 개념이 갑자기 손에 잡히는 물건처럼 느껴졌달까.

부절이란: 하나의 패를 만들어 반으로 가른 뒤 각자 보관. 나중에 맞춰보아 딱 들어맞으면 진짜, 아니면 가짜. 기원전 11세기 주(周)나라부터 사용된 인류 최초의 인증 시스템.

신릉군의 도둑질 — SSH 키를 절대 빼앗기면 안 되는 이유

부절 이야기를 하다 보니 자연스럽게 역사 이야기로 흘러갔다. 그 중 기원전 257년에 있었던 한 사건이 특히 인상적이었다.

전국시대, 조나라가 진나라 대군에 포위돼 멸망 직전이었다. 위나라 공자 신릉군(信陵君)은 조나라를 구하고 싶었지만 위나라 왕은 출병을 거부했다. 신릉군은 결국 왕의 총애를 받는 여희(如姬)를 설득해 왕의 침실에 보관된 호부(虎符)를 몰래 훔쳐냈다. 도둑질한 호부를 들고 장수 앞에 나타나자 — 군대가 즉시 움직였다. 호부가 맞았으니까.

“병부를 훔쳐 군대를 움직였다 (竊符救趙)” — 이 일화에서 나온 고사성어다.

이 이야기를 듣는 순간 소름이 돋았다. 신릉군이 호부를 훔쳐 군대를 움직인 것처럼 — 누군가 나의 Private Key를 탈취한다면, 서버는 그 사람을 나로 믿어버린다. 2천 년 전 이야기가 오늘 내 xxxxxxxxx.pem 파일 이야기였다.


서버가 퀴즈를 낸다 — Challenge-Response의 정체

그런데 여기서 또 궁금증이 생겼다. 부절은 두 조각을 물리적으로 갖다 대면 맞는지 바로 보인다. SSH에서는 대체 어떻게 “맞춰보는” 걸까? 설마 서버가 내 Private Key를 직접 들여다보는 건 아닐 텐데.

나
서버가 프라이빗키를 직접 보는 건 아니잖아? 그럼 어떻게 맞춰보는 거야?
AI
서버가 퀴즈를 냅니다. “이 문자열에 서명해봐” → 클라이언트가 Private Key로 서명 → 서버가 Public Key로 검증. Private Key는 단 한 번도 서버로 전송되지 않아요.

그제서야 완전히 이해됐다. 서버는 Private Key를 보는 게 아니라, Private Key로만 만들 수 있는 서명을 받아 검증하는 것이다. 황제가 호부를 직접 들고 오지 않아도, “두 조각이 맞았다”는 결과만으로 진위를 판단하는 것처럼.


연쇄 반응 — VPN도, HTTPS도, SSL도 전부 부절이었다

SSH를 부절로 이해하고 나니 신기한 일이 일어났다. 대화가 이어질수록 완전히 다른 개념처럼 보였던 것들이 전부 같은 원리로 보이기 시작한 것이다.

VPN

인터넷이라는 뻥 뚫린 광장에 출입통제문 하나를 세우는 것. .ovpn 파일 안에 인증서(부절)가 들어있고, 커넥트 버튼을 누르는 순간 그 부절을 자동으로 제시해 터널이 열린다.

HTTPS

처음 보는 가게 주인이 정부 발급 사업자등록증을 보여주는 것. CA(인증기관)가 “이 사이트 진짜 맞음”을 공증한 인증서가 바로 자물쇠 🔒 표시다. 우리는 OS 설치 때부터 그 정부(CA)를 이미 신뢰하고 있었다.

SSL 인증서

CA가 도장을 찍어준 공증된 부절. 🔒 있으면 “공증된 부절 확인됨”, ⚠️ 있으면 “공증 없음 — 경계 요망”. 단, 가짜 사이트도 SSL을 받을 수 있으니 도메인 주소도 반드시 확인.

결국 이렇게 쌓인 구조였다:

광장(인터넷)
  ↓
출입통제문(VPN)  ← .ovpn 부절
  ↓
건물 내부(내부망)
  ↓
각 방문(SSH)     ← .pem 부절
  ↓
방 안의 금고(HTTPS) ← SSL 인증서 부절


물리적 일치 vs 수학적 일치

SSH와 부절이 개념적으로 같다고 했지만 — 딱 한 가지 결정적으로 다른 점이 있다.

부절 = 두 조각을 물리적으로 갖다 대면 맞는지 바로 보임
→ 검증하려면 직접 만나야 한다

SSH 키 = 수학적 서명을 계산해서 검증
→ 지구 반대편 서버와도 0.1초 만에 검증 끝

호부는 황제와 장군이 같은 자리에 있어야 맞춰볼 수 있었다. 신릉군이 구태여 호부를 훔쳐야 했던 이유도 그 때문이다. 2천 년 만에 생긴 가장 큰 업그레이드는 아이러니하게도 “안 만나도 된다”는 것이었다.


그래서 결국 — 인터넷 전체가 부절 위에 서 있다

대화가 끝날 무렵 이런 생각이 들었다.

SSH, VPN, HTTPS, SSL 각각을 따로 공부했을 땐 서로 전혀 다른 기술처럼 느껴졌는데 — 부절 하나로 꿰고 나니 전부 같은 것이었다.

기원전 11세기 주나라의 장인이 청동패를 반으로 가르며 고민했던 문제 — “어떻게 하면 상대가 진짜 그 사람임을 증명할 수 있을까?”

그리고 1977년 MIT의 수학자 셋이 RSA 알고리즘을 발명하며 풀었던 문제. 그리고 1995년 SSH 프로토콜이 만들어진 이유. 그리고 지금 내가 ssh -i xxxxxxxxx.pem ubuntu@서버주소를 치는 이유.

전부 같은 질문에 대한 같은 답이었다. 나만 가진 것으로 나임을 증명한다.

🪧 ↔ 💻
부절 (符節)
기원전 11세기 주(周)나라
나무결이 맞아야 증명된다
=
SSH / VPN / HTTPS
1995년 ~ 현재
수학이 맞아야 증명된다
인류는 수천 년째 같은 방법으로 신뢰를 증명하고 있다
형태는 청동에서 숫자로 바뀌었을 뿐 — 철학은 하나

SSH 키를 처음 생성하며 “왜 두 개가 나오지?” 하고 고개를 갸웃거렸던 그 순간. 그것은 사실 기원전 11세기 주나라의 장인이 청동패를 가르며 품었던 고민과 정확히 같은 질문이었다.

— 어느 날 오후, AI와의 대화 후 정리한 메모

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 기록은 여기까지지만,
생각은 아직 이동 중이다