NAS나 작은 홈 서버는 대부분의 사람이 SSH를 배우는 가장 좋은 이유입니다. 내 스토리지이자 백업이자 미디어이고, 어쩌면 컨테이너 몇 개이기도 합니다. 그리고 소파에서, 직장에서, 휴대폰에서 거기에 닿고 싶습니다. SSH는 그 상자에 화면을 꽂지 않고 그걸 해내는 방법입니다. 노트북에서, 또는 책상을 떠나 있을 때는 iPhone·iPad SSH 클라이언트에서요. 함정은 ‘내 네트워크에서는 된다’에서 ‘어디서나 닿는다’로 넘어가는 지점인데, 여기서 잘못된 지름길을 택하면 홈 랩이 열린 인터넷 위에 올라갑니다. 처음부터 끝까지, 안전한 길을 소개합니다.
1단계: 내 네트워크에서 닿기
뭔가 영리한 걸 하기 전에, 집에서 같은 Wi-Fi나 LAN에 있는 동안 SSH가 되는지 확인하세요.
SSH를 켜세요. 대부분의 NAS 상자는 꺼진 채로 출고됩니다. Synology는 Terminal & SNMP → Enable SSH service, QNAP은 Control Panel → Telnet/SSH, TrueNAS는 Services → SSH입니다. 평범한 Linux 홈 서버는 보통 이미 sshd를 돌리고 있습니다. 어떤 상자든 토글이 하나 있습니다. 그걸 켜고, 포트를 적어 두세요(기본 22, 가끔 옮겨져 있습니다).
주소를 찾으세요. 공유기의 클라이언트 목록에 나오거나, NAS 관리 페이지가 LAN IP를 보여 줍니다(192.168.1.50 같은 것). 그런 다음:
ssh admin@192.168.1.50
사용자명은 NAS에 로그인하는 계정이 무엇이든 그것입니다. 많은 어플라이언스에서는 admin, Linux 머신에서는 자기 사용자, 가끔은 root입니다. 연결되어 셸이 뜨면 어려운 부분은 끝났습니다. 아래 내용은 전부 같은 셸에 집 밖에서 닿는 방법일 뿐입니다.
2단계: 포트 22를 열지 않고 밖에서 닿기
뻔한 수는 공유기의 포트 22를 NAS로 포워딩하는 것입니다. 하지 마세요. 공개적으로 닿는 SSH 포트는 몇 분 안에 스캐너에게 발견됩니다. 열리는 순간부터 로그가 Connection reset by peer와 수천 번의 로그인 시도로 가득 찹니다. 공유기를 전혀 열지 않는 더 나은 방법 네 가지를, 추천하는 정도에 따라 대략 순서대로 소개합니다(NAT 뒤 SSH 플레이북(영어)이 각각을 더 깊이 다룹니다):
오버레이 네트워크(쉽고 안전한 기본값). Tailscale이나 WireGuard 구성 같은 도구는 기기들만 볼 수 있는 사설 네트워크에 내 기기들을 올립니다. 노트북과 NAS가 안정적인 사설 주소를 받고, 어디서나 집에 있는 것처럼 ssh admin@100.x.y.z를 합니다. 상자는 공개 인터넷에 전혀 노출되지 않습니다. 대부분의 홈 랩에는 이게 답의 전부입니다.
관리형 아웃바운드 전용 커넥터. 메시나 VPS를 직접 세우기 싫다면, Termalin의 Connector는 NAS에 한 줄로 설치하는 작은 에이전트입니다. Termalin으로 바깥쪽으로 다이얼하므로 공유기에 인바운드 포트가 없고, 앱이나 브라우저에서 상자의 셸에 닿되 NAS에 사는 키 대신 단기 인증서로 인증합니다. 오버레이 네트워크와 똑같은 인바운드 포트 없는 원칙이되, 릴레이를 직접 돌리지 않습니다.
저렴한 VPS로 나가는 리버스 터널. 이미 작은 서버를 빌리고 있다면, NAS가 그쪽으로 바깥쪽으로 다이얼해 자기 SSH 포트를 되돌려 포워딩할 수 있습니다. 그러면 VPS에 연결해 NAS에 닿습니다. 집 공유기에는 인바운드가 전혀 열리지 않습니다. 이것이 리버스 터널 패턴(영어)으로, 위 커넥터의 직접 손으로 만든 사촌이며, 오버레이 네트워크가 선택지가 아닐 때 맞는 도구입니다.
동적 DNS + 포트 포워딩(옛날 방식 — 꼭 해야 할 때만). 그래도 SSH를 노출하겠다고 고집한다면, 최소한: 포트 22에서 옮기고, 키만 허용하고(PasswordAuthentication no), fail2ban을 돌리세요. 동적 DNS 호스트명이 바뀌는 집 IP를 처리합니다. 되기는 하지만, 이제 개인 데이터로 가득 찬 상자를 위해 인터넷을 향한 공격 표면을 유지하는 셈입니다. 오버레이 네트워크는 바로 그러지 않아도 되라고 존재합니다.
3단계: 비밀번호가 아니라 키
어느 경로를 고르든, 비밀번호가 아니라 키로 로그인하세요. 현대적인 키를 하나 만드세요 — 30초 요약은 Ed25519 vs RSA(영어)를 보세요 — 공개 쪽을 NAS 사용자의 authorized_keys에 넣고, 그게 되면 비밀번호 로그인을 끄세요. 기기별로 해지할 수 있는 키가 모든 계정이 공유하는 비밀번호보다 낫고, 위의 ‘아무것도 노출하지 않고 키만’ 자세를 실제로 성립시키는 것이 바로 그것입니다.
AI 에이전트가 상자 운영을 돕게 하기
2026년 홈 랩이 향하는 곳은 이렇습니다. 컨테이너가 왜 죽었는지, 디스크가 왜 찼는지 직접 SSH로 들어가 확인하는 대신, 어시스턴트 — Claude Code, Cursor, 로컬 모델 — 에게 봐 달라고 합니다. 정말 유용합니다. 그리고 바로 거기서 사람들은 낯선 이에게는 절대 하지 않을 실수를 합니다. 자기 백업을 담은 상자의 셸을 에이전트에게 건네는 것입니다.
망설이는 본능이 옳습니다. 내 NAS 키를 가진 에이전트는 내가 할 수 있는 건 뭐든 할 수 있고, 지나가며 읽은 오염된 로그 한 줄이나 악의적인 파일명에 넘어가 엉뚱한 일을 하도록 설득당할 수 있습니다. 폭발 반경(영어)은 내가 요청한 한 가지 작업이 아니라 상자 전체입니다. 해결은 이 아이디어를 포기하는 게 아니라, 에이전트가 받는 것을 바꾸는 것입니다. 키와 날것의 셸 대신, 에이전트는 다음과 같은 무언가를 거쳐야 합니다:
- 대신 키를 쥐어 주는 것 — 에이전트는 연결하지만 자격 증명을 보거나 저장하지 않으므로, 에이전트 컨텍스트가 새어도 NAS 로그인이 새는 게 아닙니다;
- 실행할 수 있는 것을 제한하는 것 — 이 에이전트가 NAS에서 이 명령들만 실행하고 그 외에는 안 된다고 정하는 호스트별 정책(로그와 디스크 사용량 읽기는 허용,
rm -rf는 불가); - 계속 보이는 것 — 세션을 실시간으로 지켜보고 감사 로그에 기록되므로, ‘에이전트가 공간을 좀 비웠다’는 믿고 넘기는 게 아니라 실제로 확인할 수 있는 일이 됩니다.
이것은 위의 리버스 터널과 키 전용 로그인과 같은 원칙 — 작업에 필요한 것보다 더 노출하지 말라(영어) — 을 인터넷이 아니라 에이전트에 적용한 것입니다.
Termalin이 들어맞는 지점
Termalin은 크로스 플랫폼 SSH 클라이언트로 — 데스크톱의 Windows·macOS·Linux에, 네이티브 iPhone·iPad 앱과 브라우저 클라이언트까지 — 바로 이런 모양의 문제를 위해 만들어졌습니다. 공유기를 열지 않고 집 상자에 닿는 터널(영어)을 처리하고, 호스트마다 사용자·키·포트를 함께 보관해 NAS가 기억해 둔 IP가 아니라 클릭 한 번이 되게 하며, 상태 표시줄에 머신의 디스크·메모리·부하를 실시간으로 보여 줍니다. 그래서 ‘상자가 떠 있기나 한가, 디스크는 찼나?‘가 명령을 입력하기 전에 답이 됩니다.
그리고 에이전트의 도움을 원할 때는 Termalin의 내장 MCP 서버를 통해 연결됩니다. 에이전트는 키를 전혀 쥐지 않고 내 SSH 액세스로 일하며, 직접 정한 호스트별 명령 정책(영어)의 통제를 받고, 실시간 워치 그리드에 미러링되며, 로그로 남습니다. 홈 랩은 유능한 어시스턴트를 얻고, 어시스턴트는 그 열쇠를 결코 얻지 못합니다. Free 요금제는 호스트 수 제한이 없습니다. 받아서 NAS를 가리키게 하세요.
Termalin은 내장 MCP 서버를 갖춘 무료 크로스 플랫폼 SSH 클라이언트입니다. 나를 위한, 그리고 돕게 허락한 AI 에이전트를 위한 안전한 SSH 액세스입니다. 다운로드하거나, 보안 모델을 읽어 보세요.