SSH는 Host 헤더가 없습니다

발행: (2026년 3월 18일 PM 02:18 GMT+9)
5 분 소요

Source: Hacker News

우리는 SSH와 관련된 문제를 가지고 있습니다. 모든 VM은 HTTPS와 SSH 모두에 사용할 수 있는 표준 URL을 가지고 있습니다. 예를 들어 undefined-behavior.exe.xyz와 같습니다. 웹 브라우저에 도메인을 입력하고 TLS와 인증이 자동으로 처리되는 것처럼, 다음과 같이 실행할 수 있습니다:

ssh undefined-behavior.exe.xyz

그러면 VM에 쉘이 열립니다.

각 머신에 고유한 IP 주소를 할당한다면 구현은 매우 간단하지만, exe.dev는 플랫‑레이트 구독으로 많은 VM을 제공합니다.

구독 비용을 폭증시키지 않고는 각 머신에 IPv4 주소를 할당할 수 없습니다. IPv6‑전용을 사용할 수도 없는데, 이는 일부 인터넷 사용자가 웹을 통해 VM에 접근할 수 없게 만들기 때문입니다. 따라서 우리는 IPv4 주소를 VM 간에 공유해야 합니다.

웹에서는 이 문제가 오래전부터 해결되어 왔습니다. 여러 사이트가 동일한 IP 주소를 공유할 수 있습니다. 웹 브라우저는 서버에 도달하기 위해 사용한 도메인을 HTTP 요청의 Host 헤더에 포함합니다. exe.dev 프록시는 이 헤더를 기준으로 요청을 적절한 VM으로 라우팅합니다.

반면 SSH에는 Host 헤더와 동등한 것이 없습니다. IPv4 주소를 VM 간에 재사용한다면, 올바른 VM으로 SSH 연결을 보내는 방법이 없습니다.

우리가 해결한 방법: SSH IP 공유

모든 VM에 하나의 IP 주소를 사용하는 대신, 우리는 여러 개의 공용 IPv4 주소 풀을 가지고 있습니다. 각 VM은 소유자에 대해 고유한 주소를 할당받습니다.

따라서 A 레코드 대신 다음과 같은 결과를 보게 됩니다:

$ dig undefined-behavior.exe.xyz

; > DiG 9.10.6 > undefined-behavior.exe.xyz
...
;; ANSWER SECTION:
undefined-behavior.exe.xyz. 230 IN      CNAME   s003.exe.xyz.
s003.exe.xyz.           230     IN      A       16.145.102.7

소유자에 대해 고유하다는 의미는 s003이 나타내는 IP가 여러 VM에서 사용되지만, 해당 사용자가 소유한 VM에서는 하나만 사용된다는 뜻입니다.

이것이 SSH 연결을 라우팅하는 데 필요한 모든 추가 정보입니다. SSH가 연결될 때 공개 키를 제시하고 특정 IP 주소를 통해 들어옵니다. 공개 키는 사용자를 알려 주며, {user, IP} 튜플이 연결하려는 VM을 고유하게 식별합니다. 다이어그램으로 나타내면 다음과 같습니다:

A diagram of ssh'ing into an exe.dev VM

이러한 프록시를 구축하려면 여러 시스템 간의 통신이 필요합니다:

  • VM을 생성할 때, 해당 VM을 소유한 사용자(또는 가까운 미래에 팀)를 기준으로 IP를 신중히 할당해야 합니다.
  • 우리의 SSH 프록시는 요청이 도착한 로컬 IP를 판단해야 합니다—베어 메탈에서는 쉽지만, 퍼블릭 IP가 프라이빗 VPC 주소로 NAT되는 클라우드 환경에서는 더 어렵습니다.

이 모든 과정은 맞춤형 관리 소프트웨어가 필요하므로, 단일 IP에 여러 VM의 SSH 접근을 다중화하려는 일반 사용자에게는 일반적인 솔루션으로 권장할 수 없습니다. 하지만 일관되고 예측 가능한 도메인 이름 동작은 우리에게 매우 중요했기 때문에, exe.dev를 위해 이 방식을 구현했습니다.

0 조회
Back to Blog

관련 글

더 보기 »

내가 타입 디자인을 발견한 날

50년 전인 이번 달, 1976년 3월, 20살 때 나는 서체 디자인에 대한 관심을 갖게 되었다. !https://www.marksimonson.com/_astro/Mark_1976.CUI1PPRz_Z1hRTVk.webp

독립적인 AI 그리드의 필요성

쓴 교훈은 compute를 확장하여 최전선 AI 진보를 열어야 한다고 말합니다. 경험적 기록이 이를 확인합니다. 집중된 독립 팀들은 ext...

Waymo, 인간 운전자보다 13배 더 안전

문제가 발생했지만, 걱정하지 마세요 — 다시 시도해 봅시다. !https://abs-0.twimg.com/emoji/v2/svg/26a0.svg 일부 privacy related extensions가 문제를 일으킬 수 있습니다.