본문으로 건너뛰기

새로 포맷한 맥북, 쓰던 맥에서 Tailscale로 원격 셋업하는 7단계 (SSH 키 등록부터 Homebrew까지)

· 약 9분
Datapopcorn CEO / AI automation educator
이 글과 연결된 글 보기
19편 · 81개 연결
100%
유료 문자 API 대신 내 안드로이드폰으로 무료 SMS 게이트웨이 만들기: Aside·무선 ADB·TextBee 실전 연동기베를린 출장 교통 앱 가이드: 한국 번호로 BVG·FREE NOW·Uber·Bolt 가입해 본 8단계 (2026)ChatGPT 실시간 통역 사용법: 데스크톱 앱 Voice로 영어·한국어 통역하기 (프롬프트 포함)챗GPT 새 한국어 음성 '한울·햇살' 설정하고 영어 회화 연습에 쓰는 법 (GPT-Live-1.1)Claude Design 독립형 사이트 12월 14일 종료: 디자인 시스템·프로젝트를 Claude로 옮기는 6단계와 안 넘어가는 것먼저 연락하는 Claude, Claude Duet 정리: 무엇이 다르고 한국에서 대기자 신청은 어떻게 하나클로드 사용량 100%에서 0%로, 무료 초기화 직접 해봤습니다패스트파이브 성수연무장점 후기: 성수역에서 가는 길, 지하 입구, 라운지 시설까지패스트파이브 뚝섬점 후기: 뚝섬역 4번 출구에서 가는 길, 지하 메인 라운지, 태스크룸까지Gemini 4 Argon 직접 써봤습니다: Pro 요금제에서 켜는 법, Flash와 같은 질문 비교, 3D 게임까지링크드인 글 하나에 여러 명 이름 올리기: 협업 게시물(Collaborative Posts) 사용법러다이트(Ludyte) 가입부터 첫 영상까지: 무료 9회로 직접 해본 기록n8n 3.0, 한 번 올리면 못 돌아갑니다: 운영 서버로 먼저 올려 보고 알게 된 것사업자 있으신 분, 050 안심번호 무료로 받으세요 (네이버 스마트콜 발급 방법)네이버 스마트플레이스 똑똑하게 채우는 법, AI 에이전트로 관리하기까지해외 출장 예약하고 개인 카드를 한 번도 안 꺼냈습니다 — 법인 출장 플랫폼 Perk 사용기ERP 화면 뒤 API를 읽는 법: REA로 Odoo 판매 흐름을 역추적해 보고, 더존에 적용할 때 지킬 선까지Softr로 교육 수강생 포털 만들기: AI 빌더로 뼈대 만들고, 버그 6개 직접 고친 기록새로 포맷한 맥북, 쓰던 맥에서 Tailscale로 원격 셋업하는 7단계 (SSH 키 등록부터 Homebrew까지)

드래그로 이동 · 휠/두 손가락으로 확대 · 방향키로 글 선택 · 0으로 맞춤. 실선: 본문 링크, 점선: 시리즈·주제의 대표 연결.

표시된 글 19편 목록
전체 글 연결 탐색

새로 포맷한 맥북을 셋업할 때, 새 맥 앞에 앉아 프로그램을 하나씩 받을 필요는 없습니다. 쓰던 맥과 새 맥을 Tailscale로 묶고 SSH만 열어 두면, 나머지 설치는 쓰던 맥에서 원격으로 돌릴 수 있습니다. 이 글은 실제로 M4 맥북을 포맷한 뒤 쓰던 맥에서 원격 셋업하면서 세 번 막혔던 지점과 그 해결법을 7단계로 정리했습니다.

이 글은 이런 분께 필요합니다​

  • 맥을 두 대 이상 쓰고 있고, 새로 포맷한 맥을 쓰던 맥에서 원격으로 세팅하고 싶은 분
  • Claude Code, Codex 같은 AI 에이전트에게 새 맥 셋업을 맡기고 싶은 분 (에이전트는 SSH로 들어가야 일을 할 수 있습니다)
  • 새 맥 터미널에 긴 명령어를 따라 치기 번거로운 분

준비물은 다음과 같습니다.

  • 두 맥 모두 같은 Tailscale 계정(같은 tailnet)에 로그인된 상태
  • 새 맥의 관리자 계정 비밀번호 (Homebrew 설치 때 한 번 필요합니다)
  • 쓰던 맥에 SSH 키 한 쌍 (~/.ssh/id_ed25519.pub가 없으면 Step 4에서 만듭니다)

아래 명령어와 결과는 2026년 11월 2일, 새 맥 M4 맥북(macOS 26.6.2)과 쓰던 맥(macOS)으로 직접 실행한 기록입니다. 예시 주소는 새 맥 100.115.0.20, 쓰던 맥 100.101.0.10, 새 맥 계정은 newmac으로 바꿔 적었습니다. 본인 주소와 계정으로 바꿔서 쓰세요.

먼저 알아둘 것: Tailscale 연결과 SSH 접속은 별개입니다​

Tailscale은 내 기기끼리만 통하는 사설망을 만들어 줍니다. 로그인한 기기마다 100.으로 시작하는 주소가 붙고, 집과 사무실처럼 다른 네트워크에 있어도 이 주소로 서로 닿습니다.

여기서 헷갈리기 쉬운 점이 있습니다. Tailscale은 길을 열어 줄 뿐이고, 그 길 끝에서 문을 열어 주는 건 맥 자신입니다. 새 맥의 원격 로그인(SSH)이 꺼져 있으면, Tailscale 연결이 멀쩡해도 접속은 거절됩니다. 이번 셋업에서도 핑은 처음부터 됐지만 SSH는 두 번 더 막혔습니다.

Step 1. 두 맥이 같은 tailnet에 있는지 확인합니다​

쓰던 맥 터미널에서 Tailscale 기기 목록을 봅니다. 맥 앱으로 설치했다면 CLI는 앱 안에 있습니다.

/Applications/Tailscale.app/Contents/MacOS/Tailscale status

목록에 새 맥이 보이면 그 주소로 핑을 보냅니다.

ping -c 2 100.115.0.20

응답이 오면 길은 열린 겁니다. 목록에 새 맥이 없으면 새 맥에서 Tailscale 앱을 설치하고 같은 계정으로 로그인합니다. 기기 이름도 눈여겨보세요. 이번에 새 맥은 caramel-popcorn-macbookpro로 보였는데, 이 이름이 나중에 계정 이름을 짐작하는 단서가 됐습니다.

tailscale status에서 새 맥이 보이고 핑이 응답하는 화면

Tailscale 기기 목록에 새 맥이 보이고 핑도 응답하지만, 22번 포트는 닫혀 있습니다. 주소는 예시로 바꿨습니다.

Step 2. 22번 포트로 SSH가 열려 있는지 확인합니다​

SSH는 22번 포트를 씁니다. 쓰던 맥에서 포트가 열려 있는지 먼저 봅니다.

nc -z -G 3 100.115.0.20 22 && echo "열림" || echo "닫힘"

결과는 두 가지로 갈립니다.

결과뜻할 일
Connection refused / 닫힘새 맥의 원격 로그인이 꺼져 있음Step 3
열림원격 로그인은 켜져 있음Step 4

이번에는 핑은 되는데 Connection refused가 나왔습니다. 원격 로그인이 꺼져 있다는 뜻입니다.

Step 3. 새 맥에서 원격 로그인을 켭니다​

새 맥에서 시스템 설정 > 일반 > 공유 > 원격 로그인을 켭니다. 오른쪽 (i) 버튼을 눌러 접근 허용을 "모든 사용자" 또는 내 계정으로 둡니다.

터미널 명령보다 설정 화면이 확실합니다

처음에는 새 맥 터미널에서 sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist로 켜 보려 했지만, 22번 포트는 계속 닫혀 있었습니다. 설정 화면에서 원격 로그인 토글을 켠 뒤에야 Step 2의 확인 명령이 "열림"으로 바뀌었습니다.

다시 Step 2 명령을 돌려 "열림"이 나오면 다음 단계로 갑니다.

Step 4. 공개키를 줄 깨짐 없이 등록합니다​

비밀번호 없이 들어가려면, 쓰던 맥의 공개키를 새 맥의 ~/.ssh/authorized_keys에 넣어야 합니다. 공개키는 이름 그대로 남에게 보여 줘도 되는 쪽 키입니다. id_ed25519처럼 .pub가 없는 파일(개인키)은 절대 옮기지 마세요.

쓰던 맥에 키가 없다면 먼저 만듭니다.

ls ~/.ssh/id_ed25519.pub || ssh-keygen -t ed25519

여기서 두 번째로 막혔습니다​

공개키는 ssh-ed25519 AAAA...로 시작하는 100자 가까운 한 줄입니다. 처음에는 이 키를 넣는 긴 명령을 새 맥 터미널에 옮겨 치는 방식으로 안내했는데, 포트가 열린 뒤에도 접속이 계속 거절됐습니다. 나중에 확인해 보니 새 맥에는 authorized_keys 파일 자체가 없었습니다. 긴 명령을 다른 기기로 옮겨 치는 과정에서 키 등록이 아예 이뤄지지 않은 겁니다.

[email protected]: Permission denied (publickey,password,keyboard-interactive).

이 메시지는 두 가지 경우에 똑같이 나옵니다.

  1. 공개키가 제대로 안 들어갔을 때 (붙여넣다 줄이 끊기거나 일부가 빠진 경우)
  2. 계정 이름을 틀렸을 때

SSH 서버는 보안상 "그런 계정은 없다"고 알려 주지 않기 때문에, 쓰던 맥에서는 둘을 구분할 수 없습니다. 새 맥에서 whoami로 계정 이름을 확인해야 합니다. 맥 계정 이름은 처음 셋업할 때 입력한 이름에서 자동으로 만들어져서, 생각한 이름과 다를 수 있습니다.

해결: 쓰던 맥에서 키를 띄우고, 새 맥에서는 짧은 한 줄만 칩니다​

긴 키를 옮기는 대신, 쓰던 맥이 Tailscale 사설망 안에서만 공개키 파일을 잠깐 내려 주게 합니다. 쓰던 맥에서 실행합니다.

mkdir -p /tmp/kshare && cp ~/.ssh/id_ed25519.pub /tmp/kshare/key
cd /tmp/kshare && python3 -m http.server 18790

새 맥 터미널에서는 이 한 줄만 칩니다. 100.101.0.10은 쓰던 맥의 Tailscale 주소입니다.

mkdir -p ~/.ssh; curl -s 100.101.0.10:18790/key >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys; whoami

마지막에 찍히는 whoami 값이 접속할 계정 이름입니다. 등록이 끝나면 쓰던 맥에서 Ctrl+C로 서버를 끕니다.

이 방법이 괜찮은 이유는 세 가지입니다.

  1. 키를 사람이 옮기지 않으니 줄이 깨질 일이 없습니다.
  2. 내려 주는 파일은 공개키뿐이고, Tailscale 주소는 내 기기끼리만 닿습니다.
  3. 명령이 짧아서 새 맥 앞에서 손으로 쳐도 됩니다.
계정 이름까지 자동으로 받고 싶다면

curl -s "100.101.0.10:18790/key?u=$(whoami)"처럼 주소 뒤에 계정 이름을 붙여 요청하면, 쓰던 맥의 서버 로그에 새 맥 계정 이름이 같이 찍힙니다. 이번에는 새 맥에서 결과를 보내 주기 어려워서 이 방식으로 계정 이름을 받았습니다.

Step 5. 쓰던 맥에서 접속을 확인하고 별칭을 만듭니다​

ssh [email protected] 'whoami; sw_vers -productVersion; uname -m; df -h / | tail -1'

비밀번호를 묻지 않고 계정 이름, macOS 버전, 칩 종류, 디스크 여유가 나오면 성공입니다. 이번에는 arm64, macOS 26.6.2, 여유 885GB가 나왔습니다.

비밀번호 없이 SSH 접속에 성공해 새 맥 정보가 나오는 화면

키 등록 뒤 비밀번호 없이 바로 들어가 새 맥 정보를 읽었습니다.

매번 주소를 치기 싫다면 쓰던 맥의 ~/.ssh/config에 별칭을 둡니다.

Host newmac
HostName 100.115.0.20
User newmac

이제 ssh newmac만으로 들어갑니다.

Step 6. Homebrew는 설치 창(pkg)으로 깝니다​

Homebrew는 설치할 때 관리자 비밀번호를 한 번 물어봅니다. SSH로는 그 비밀번호를 대신 넣을 수 없어서, 이 단계만은 새 맥 앞에서 해야 합니다.

여기서 세 번째로 막혔습니다​

새 맥에서 공식 설치 스크립트를 파이프로 실행하는 짧은 명령을 시도했는데, 설치가 끝나지 않고 종료돼 /opt/homebrew가 생기지 않았습니다. 터미널에서는 비밀번호를 쳐도 화면에 아무것도 안 보이고 "Press RETURN" 같은 안내도 지나가 버려서, 새 맥 앞에 있는 사람은 어디서 멈췄는지 알기 어렵습니다.

해결: 쓰던 맥에서 pkg를 받아 새 맥 화면에 설치 창을 띄웁니다​

Homebrew는 일반 맥 앱처럼 설치하는 Homebrew.pkg도 공식 배포합니다. 쓰던 맥에서 SSH로 새 맥에 최신 pkg를 내려받고 바로 엽니다.

ssh newmac 'cd ~/Downloads && U=$(curl -s https://api.github.com/repos/Homebrew/brew/releases/latest | grep -o "https://[^\"]*\.pkg" | head -1) && curl -sL -o Homebrew.pkg "$U" && open Homebrew.pkg'

새 맥에 로그인된 화면이 있으면 설치 창이 그 화면에 뜹니다. 새 맥 앞에서는 계속 > 설치를 누르고, 비밀번호 창에 로그인 비밀번호만 넣으면 끝입니다. 이번에는 Homebrew 7.0.12가 설치됐습니다.

설치가 끝났는지는 쓰던 맥에서 확인합니다.

ssh newmac '/opt/homebrew/bin/brew --version'
pkg로 깔아도 Xcode 명령줄 도구는 따로입니다

pkg 설치 뒤에도 새 맥에서 xcode-select -p는 "active developer directory"가 없다는 오류를 냈습니다. Homebrew가 미리 빌드된 패키지(bottle)를 받는 데는 지장이 없었지만, 소스에서 빌드해야 하는 프로그램이나 Xcode가 필요한 작업을 하려면 새 맥에서 xcode-select --install을 한 번 실행해 주세요.

Step 7. 쓰던 맥의 설치 목록을 뽑아 원격으로 설치합니다​

먼저 쓰던 맥에서 지금 깔려 있는 목록을 뽑습니다.

brew leaves # 직접 설치한 CLI 도구
brew list --cask # 앱과 폰트
npm ls -g --depth=0 # 전역 npm 도구
ls /Applications # brew 밖에서 설치한 앱까지 확인

이 목록을 그대로 다 옮기면 쓰지 않는 도구까지 따라옵니다. 이번에는 매일 쓰는 것만 골라 설치 스크립트로 묶었습니다.

#!/bin/bash
export PATH=/opt/homebrew/bin:$PATH
export HOMEBREW_NO_AUTO_UPDATE=1

for f in git gh git-lfs node [email protected] uv jq wget ffmpeg imagemagick yt-dlp tmux rclone; do
brew install $f && echo "ok $f" || echo "FAIL $f"
done

for c in google-chrome visual-studio-code cursor warp raycast rectangle slack notion obsidian font-pretendard; do
brew install --cask $c && echo "ok cask $c" || echo "FAIL cask $c"
done

grep -q 'brew shellenv' ~/.zprofile 2>/dev/null || echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile

쓰던 맥에서 새 맥으로 보내고 실행합니다. 한 줄씩 ok/FAIL이 찍혀서 무엇이 실패했는지 바로 보입니다.

scp setup-newmac.sh newmac:~/
ssh newmac 'bash ~/setup-newmac.sh 2>&1 | tee ~/setup-newmac.log'

몇 가지는 원격으로 끝까지 깔리지 않으니 새 맥에서 직접 하는 편이 낫습니다.

  • 비밀번호를 묻는 pkg형 앱: Docker Desktop, 가상 오디오 장치(BlackHole)처럼 설치 중 관리자 권한이 필요한 앱은 원격 스크립트에서 빼고 새 맥에서 직접 설치하도록 남겨 뒀습니다.
  • App Store 앱: 카카오톡처럼 App Store에서 받는 앱은 새 맥에서 Apple ID로 로그인해야 합니다.
  • 로그인이 필요한 앱: 설치는 원격으로 되지만, 앱 첫 실행과 계정 로그인은 새 맥에서 합니다.

막힐 때​

증상원인해결
tailscale status에 새 맥이 없음새 맥이 다른 계정으로 로그인했거나 앱이 꺼짐새 맥에서 Tailscale 앱을 같은 계정으로 로그인
핑은 되는데 Connection refused새 맥의 원격 로그인이 꺼짐시스템 설정 > 일반 > 공유 > 원격 로그인 켜기 (Step 3)
Permission denied (publickey,...)공개키가 안 들어갔거나 계정 이름이 틀림새 맥에서 whoami 확인, Step 4의 curl 방식으로 키 재등록
Homebrew 설치 명령을 실행했는데 /opt/homebrew가 없음설치가 끝나지 않고 중간에 종료됨Step 6의 pkg 설치 창으로 설치
xcode-select: error: Unable to get active developer directoryXcode 명령줄 도구 미설치새 맥에서 xcode-select --install
brew: command not found셸 PATH에 Homebrew가 없음echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile 후 터미널 재시작

정리​

새 맥 앞에서 해야 하는 일은 딱 세 가지였습니다. 원격 로그인 켜기, 짧은 curl 한 줄 치기, Homebrew 설치 창에서 비밀번호 넣기. 나머지는 모두 쓰던 맥에서 SSH로 처리했습니다. 한 번 키를 등록해 두면 다음부터는 ssh newmac 한 줄로 들어가고, AI 에이전트에게 새 맥 작업을 맡기는 것도 같은 길로 됩니다.

전체 연결 보기