딩돌이
☕ 커피챗 오픈
🏅 베스트오브베스트

Jump Desktop과 Tailscale로 만든 Mac mini 원격 안전망

Jump Desktop과 Tailscale로 만든 Mac mini 원격 안전망

외부에서 Mac mini에 접속해야 하는데, 평소 쓰던 Jump Desktop 연결이 되지 않는 상황이 있었다. Mac mini는 켜져 있었고 인터넷도 연결되어 있었다. Jump Desktop Connect 프로세스도 실행 중이었다. 겉으로는 “다 켜져 있는데 왜 안 되지?”에 가까운 상황이었다.
그런데 같은 와이파이를 쓰고있지 않으면 원격 조정이 안되는게 당연한 것이라는 거다. 그래서 Jump Desktop(원격 툴) 하나만 믿지 않고, Mac mini와 Windows를 외부에서도 안정적으로 확인하고 접근할 수 있는 원격 접속 안전망을 만들기 위해 Tailscale 을 적용하였다.

  • Jump Desktop: 평소 화면을 직접 조작하는 정문

  • Tailscale: 다른 와이파이·다른 IP에서도 내 장비끼리 이어주는 비상 통로

  • SSH: 비상 통로 끝에서 명령을 실행할 수 있게 해주는 보안 자동문


진행 방법

처음에는 Mac mini의 로컬 IP가 확인되어 있었다.
그러나 192.168.x.x 형태의 주소는 집 안 와이파이 같은 내부 네트워크에서만 의미가 있다. 다른 와이파이나 LTE, 외부망에서는 이 주소로 바로 접속할 수 없다.

그래서 먼저 아래처럼 접속 경로를 구분했다.

구분

역할

한계

로컬 IP

같은 와이파이 안에서 장비 확인

외부망에서는 직접 접속 불가

Jump Desktop

외부에서 화면 조작

macOS 권한이나 계정 상태에 막힐 수 있음

Tailscale

장비 사이 비상 네트워크 통로

실제 화면 조작이나 명령 실행용 “문”은 따로 필요

SSH

통로 끝의 보안 자동문

키·계정·권한 설정이 맞아야 접속 가능

Jump Desktop 점검 순서

Jump Desktop 연결 문제의 유력한 원인은 macOS 개인정보 보호 권한이었다.
macOS 업데이트, 앱 재설치, 권한 DB 변화가 생기면 기존에 잘 되던 원격 제어도 갑자기 막힐 수 있다. 그래서 집에 돌아가서 바깥에서도 접근할 수 있도록 Tailscale 을 추가했다.

Tailscale을 추가한 방법

Jump Desktop이 평소 접속용 정문이라면, Tailscale은 비상 통로다. Tailscale을 Mac mini와 Windows에 설치하고 같은 계정으로 로그인하면, 두 장비가 같은 사설망 안에 있는 것처럼 서로를 볼 수 있다.

토크케일 + SSH


< Tailscale 설치 내용>

  • Mac mini

  1. Tailscale 설치 파일 실행

  2. 관리자 암호 입력

  3. Tailscale 실행

  4. 같은 계정으로 로그인

  5. Mac mini가 Tailscale 장치 목록에 뜨는지 확인

  • Windows

  1. Tailscale 설치

  2. 같은 계정으로 로그인

  3. Mac mini가 보이는지 확인

  4. Windows에서 Mac mini의 Tailscale 주소로 접속 테스트

  • 외부망 테스트

  1. 휴대폰 LTE/5G 또는 다른 와이파이 사용

  2. Tailscale 연결 상태 확인

  3. Mac mini가 온라인인지 확인

  4. Jump Desktop 경로와 Tailscale 경로를 각각 테스트

Tailscale만 설치한다고 해서 Windows나 Mac mini 안에서 자동으로 작업할 수 있는 것은 아니다. SSH, RDP, Jump Desktop, 화면 공유, 별도 실행 환경처럼 실제 작업 진입점이 필요하다.


Tailscale과 SSH를 나눠서 이해하기

개념

비유

역할

Tailscale

두 집 사이의 전용 통로

멀리 떨어진 두 기기를 서로 찾게 해준다

SSH

전용 통로 끝의 보안 자동문

허가된 사람만 다른 컴퓨터의 터미널로 들어가게 해준다

SSH 공개키

자동문에 미리 등록해둔 출입 카드 정보

“이 카드 주인은 들여보내도 된다”고 문 앞 명단에 올려둔다

SSH 개인키

내가 가진 실물 출입 카드

내 컴퓨터에만 보관하고, 남에게 보내지 않는다

Windows에 SSH 문을 여는 흐름

Windows 쪽에서는 OpenSSH Server를 켜고, Tailscale 위에서 SSH로 들어갈 수 있게 설정한다.

1. OpenSSH 서버 추가

Windows 설정에서 아래 경로로 들어간다.

설정 → 시스템 → 선택적 기능 → 기능 보기 → OpenSSH 서버 추가
컴퓨터의 한국어 설정 스크린샷

이미 설치되어 있으면 이 단계는 건너뛴다.

2. sshd 실행, 자동시작, 방화벽 확인

Windows 관리자 PowerShell에서 sshd를 켜고 자동시작으로 둔다.

Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Get-Service sshd,Tailscale | Select-Object Name,Status,StartType
검은색 화면이 표시된 컴퓨터의 스크린샷

정상 상태는 대략 이렇다.

Name       Status   StartType
----       ------   ---------
sshd       Running  Automatic
Tailscale  Running  Automatic

3. 영문 접속 계정과 공개키 등록

한글 Windows 계정명은 SSH 클라이언트에서 꼬일 수 있다. 그래서 원격 접속용 영문 계정을 따로 두는 방식이 더 단순했다.

또 관리자 계정으로 SSH 키 접속을 할 때는 사용자 홈의 authorized_keys보다 아래 파일을 확인하는 쪽이 중요했다.

C:\ProgramData\ssh\administrators_authorized_keys
검은 화면에 한국어 파일

이때 공개키는 Windows에 등록해도 되지만, 개인키는 내 컴퓨터에만 보관해야 한다. 개인키는 문서나 메신저에 올리지 않는다.

4. Mac에서 접속 별칭 만들기

Mac의 ~/.ssh/config에 별칭을 만들면 매번 긴 주소를 치지 않아도 된다.

Host my-windows
  HostName windows-device-name
  User remote-user
  IdentityFile ~/.ssh/id_ed25519
  IdentitiesOnly yes
  StrictHostKeyChecking accept-new

여기서 HostName은 숫자 IP보다 Tailscale 기기 이름을 쓰는 편이 편하다. IP가 바뀌어도 기기 이름으로 다시 찾아갈 수 있기 때문이다.

접속 테스트는 이렇게 한다.

ssh my-windows "hostname && whoami"

이 구조가 잡히면, 다음부터는 아래처럼 짧게 들어갈 수 있다.

ssh my-windows

코드 사용 여부

이번 글은 앱 설치와 원격 접속 구조 설명이 중심이지만, SSH 설정에는 실제 명령어가 들어간다.

Windows에서 서비스 상태를 확인할 때는 아래처럼 볼 수 있다.

Get-Service sshd,Tailscale | Select-Object Name,Status,StartType

Mac에서 Tailscale 너머의 Windows에 접속할 때는 아래처럼 테스트한다.

ssh my-windows "hostname && whoami"

배운 점

가장 크게 배운 점은 원격 작업 환경은 화면 공유 도구 하나만 믿으면 안 된다는 것이다.

Jump Desktop은 편하고 강력하지만, macOS 권한이나 계정 상태, 앱 실행 상태에 영향을 받는다. 연결이 끊겼을 때 원인을 외부에서 바로 알기 어렵다.

반면 Tailscale은 화면을 보여주는 도구가 아니라 장비끼리 이어주는 네트워크 통로다. 그래서 Jump Desktop을 대체한다기보다, Jump Desktop이 안 될 때 장비가 살아 있는지 확인할 수 있는 안전망에 가깝다.

SSH는 그 다음 단계다. Tailscale로 길을 열었다면, SSH는 그 길 끝에 설치하는 보안 자동문이다. 화면이 없어도 컴퓨터가 살아 있는지 확인하고, 필요한 명령을 실행할 수 있다.

ps. 그 외 시행착오

  • Windows 한글 계정명은 SSH에서 꼬일 수 있어 영문 계정이 단순했다.

  • 관리자 계정으로 SSH 키 접속할 때는 C:\ProgramData\ssh\administrators_authorized_keys 쪽을 확인해야 했다.

  • Permission denied가 나오면 네트워크 문제가 아니라 사용자명, 공개키 등록 위치, 개인키 경로 문제일 가능성이 컸다.

  • Windows가 꺼져 있거나 깊은 절전 상태면, Tailscale과 SSH가 설정되어 있어도 접속할 수 없다.

5
3개의 답글

뉴스레터 무료 구독