SSH와 tmux로 맥미니를 원격 AI 작업실로 쓰기

노트북을 닫아도 맥미니의 CLI 작업을 이어가고 싶다면 SSH와 tmux를 함께 사용해 보자. 첫 연결부터 세션 복귀, Claude Code·Hermes·Ollama 실행, 기본 명령어와 설정, 대체 도구 선택까지 차근차근 따라가는 안내서다.

목표는 간단하다. 노트북에서는 접속하고, 맥미니에서는 작업을 실행하며, 연결이 끊기면 같은 작업 화면으로 돌아온다. 여기서 Hermes는 Nous Research의 Hermes Agent를 뜻한다. 명령과 제품 기능은 2026년 10월 25일 공식 문서를 기준으로 확인했다. 독자의 원격 맥미니에 접속하거나 모델 인증·추론까지 실행한 실측 후기는 아니다.

1. SSH, tmux, AI 도구는 각각 무엇을 할까

구성 요소맡는 일이 글에서 실행하는 위치
OpenSSH다른 컴퓨터의 셸에 암호화된 연결 제공노트북의 클라이언트 ↔ 맥미니의 서버
tmux터미널 세션·창·분할 화면 유지맥미니
Claude Code코드 읽기, 수정, 명령 실행을 돕는 에이전트맥미니의 프로젝트 폴더
Hermes Agent모델과 도구·메모리·스킬을 연결하는 에이전트맥미니
Ollama로컬 모델 실행 및 모델 API 제공맥미니
Laptop terminal
  └─ SSH connection
       └─ Mac mini
            └─ tmux session: ai
                 ├─ window: claude → Claude Code
                 ├─ window: ollama → Ollama server
                 └─ window: hermes → Hermes → Ollama

SSH 연결이 종료되어도 맥미니의 tmux 서버와 그 안의 프로그램은 계속 실행될 수 있다. 다시 SSH로 접속해 세션에 붙으면 된다. 노트북에만 tmux를 실행하고 그 안에서 SSH를 여는 것으로는 원격 프로그램의 수명을 같은 방식으로 보호하지 못한다. 이 글에서는 SSH 접속 후 맥미니에서 tmux를 시작한다. (tmux 소개)

tmux는 인터넷 단절, 맥미니의 잠자기, 재부팅, 프로그램 충돌을 모두 해결하는 도구가 아니다. 맥미니가 잠들면 연산이 진행되지 않으며, 재부팅하면 기존 프로세스는 사라진다. 모델 응답이나 사용자 승인을 기다리던 에이전트도 저절로 다음 단계로 넘어가지는 않는다.

2. 세션·윈도·패널과 접두 키 익히기

세션(session)은 작업 묶음, 윈도(window)는 그 안의 탭, 패널(pane)은 한 윈도를 나눈 터미널 영역이다. 프로젝트별로 세션을 만들고, 도구별로 윈도를 나누며, 로그를 옆에 볼 때만 패널을 쓰면 관리하기 쉽다.

아래 공식 예제는 한 윈도에 편집기·셸·매뉴얼을 함께 배치한 모습이다. AI 도구에도 같은 배치 원리를 적용할 수 있다.

위쪽 편집기와 아래쪽 셸·매뉴얼로 나뉜 tmux의 세 패널, 하단 세션 상태 표시줄

tmux 공식 Getting Started 문서가 제공하는 분할 화면 예제. 이 글의 AI 실습 결과 화면은 아니다. (출처: tmux, 2026-10-25 확인 · 원본 크게 보기)

기본 접두 키는 Ctrl+b다. Ctrl+b를 함께 누른 뒤 두 키를 놓고 다음 키를 누른다. 예를 들어 Ctrl+b → d는 세 키를 동시에 누르는 동작이 아니다. Mac에서도 Command가 아닌 Control을 쓴다.

가장 먼저 기억할 것은 Ctrl+b → d로 분리하고, tmux attach -t 이름으로 돌아온다는 두 가지다.

3. 준비: 어느 컴퓨터에서 입력하는지 구분하기

이 글의 복사 가능한 셸 명령은 로컬 Mac의 zsh/bash와 원격 맥미니를 기준으로 한다. Windows에서도 OpenSSH로 접속할 수 있지만, 아래 키 등록 파이프라인과 pbcopy 예제는 macOS용이다.

맥미니에는 전원과 네트워크, 로그인 가능한 macOS 사용자, Homebrew가 필요하다. 첫 설치는 Apple Silicon 맥미니를 기준으로 한다. Intel Mac은 Ollama의 GPU 가속·Homebrew 패키지 제공·Hermes 플랫폼 지원이 다를 수 있으므로 각 공식 지원표부터 확인한다. Ollama의 공식 macOS 앱 요구 사항과 Homebrew의 지원 OS도 서로 같다고 가정하지 않는다. (Ollama macOS 안내, Hermes 설치 안내)

예제의 your_user는 맥미니의 계정 짧은 이름, 192.168.0.20은 맥미니의 실제 IP로 바꾼다. 두 컴퓨터가 같은 네트워크에 있는 상태에서 먼저 연결해 보자.

맥미니: 원격 로그인 켜기

시스템 설정 → 일반 → 공유 → 원격 로그인을 켜고, 접속을 허용할 사용자를 지정한다. 표시되는 SSH 접속 명령도 확인한다. 기본 실습을 위해 모든 사용자나 전체 디스크 접근을 허용할 필요는 없다. (Apple 원격 로그인 안내)

CLI로 설정할 경우 맥미니에서 직접 다음 명령을 실행한다. 관리자 권한이나 터미널의 전체 디스크 접근 권한을 요구하는 환경에서는 시스템 설정에서 처리하는 편이 간단하다.

sudo systemsetup -getremotelogin
sudo systemsetup -setremotelogin on
whoami

노트북: 첫 SSH 연결

ssh your_user@192.168.0.20

첫 접속의 호스트 키 지문은 맥미니에서 ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub로 확인한 값과 대조한다. 비밀번호를 입력할 때 글자가 보이지 않는 것은 정상이다. 접속 후 hostname과 whoami로 대상 컴퓨터·사용자를 확인한다. exit를 입력하면 노트북으로 돌아온다.

집 밖에서는 같은 사설 IP로 바로 연결되지 않는다. Tailscale 공식 시작 안내에 따라 두 장치를 같은 사설 네트워크에 연결한 뒤, 맥미니의 Tailscale IP 또는 이름으로 기존 macOS SSH 서버에 접속할 수 있다. 별도 기능인 Tailscale SSH를 반드시 켤 필요는 없다. 먼저 이 방식으로 연결하면 공유기의 SSH 포트 개방을 직접 구성하는 단계를 줄일 수 있다.

4. 자주 접속할 수 있도록 SSH 키와 별칭 만들기

노트북에서 전용 키를 만든다. 같은 파일이 이미 있다면 덮어쓰지 말고 재사용하거나 다른 이름을 쓴다. 암호 문구도 설정한다.

ssh-keygen -t ed25519 -f ~/.ssh/macmini_ed25519 -C "macmini-access"
cat ~/.ssh/macmini_ed25519.pub | ssh your_user@192.168.0.20 'umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys'
ssh -i ~/.ssh/macmini_ed25519 your_user@192.168.0.20

등록하는 것은 .pub 공개 키다. 확장자가 없는 개인 키는 노트북에 남긴다. 마지막 명령으로 로그인되는 것을 확인하고 exit로 돌아온다.

노트북에서 nano ~/.ssh/config를 열고 다음 블록을 추가한다. 기존 파일이 있으면 내용을 지우지 않는다. nano에서는 Ctrl+O, Enter로 저장하고 Ctrl+X로 닫는다.

Host macmini
  HostName 192.168.0.20
  User your_user
  IdentityFile ~/.ssh/macmini_ed25519
  IdentitiesOnly yes
  ServerAliveInterval 30
  ServerAliveCountMax 3
chmod 600 ~/.ssh/config
ssh macmini

이제 주소 대신 macmini라고 입력한다. ServerAliveInterval은 서버에 주기적으로 응답을 요청한다. 연결 문제 감지에 도움이 되지만 끊긴 연결을 자동 복원하지는 않는다. (OpenSSH 설정 매뉴얼)

5. 첫 실습: 작업을 남겨 두고 돌아오기

맥미니: tmux 설치

Homebrew가 없다면 공식 홈페이지의 현재 설치 명령과 설치 후 안내를 먼저 따른다. Apple Silicon 기본 설치에서 brew가 검색되지 않으면 현재 셸에서 eval "$(/opt/homebrew/bin/brew shellenv)"를 실행한다. 이후 로그인에도 적용하려면 설치 안내대로 ~/.zprofile에 설정한다.

brew install tmux
tmux -V
tmux new -s practice

하단에 상태 표시줄이 생기면 tmux 안이다. 그 안에서 시간을 계속 기록하는 연습 작업을 실행한다.

mkdir -p ~/tmux-demo
while true; do date; sleep 2; done | tee -a ~/tmux-demo/ticks.log

다음 순서로 연결을 분리하고 복귀한다.

  1. Ctrl+b → d를 누른다. 맥미니의 일반 셸로 돌아오며 작업은 계속된다.
  2. exit로 SSH 연결을 닫는다. 이제 노트북의 셸이다.
  3. 잠시 후 노트북에서 ssh macmini를 실행한다.
  4. 맥미니에서 tmux ls로 practice가 남아 있는지 확인한다.
  5. tmux attach -t practice로 들어간다. 시간 출력이 이어지고 있으면 성공이다.

확인 후 Ctrl+C로 연습 루프를 멈춘다. 같은 패널에서 tail ~/tmux-demo/ticks.log로 연결을 닫았던 동안의 기록도 볼 수 있다. exit로 마지막 셸을 닫으면 연습 세션이 끝난다.

detach는 화면에서 떨어지는 동작이고, exit는 셸을 종료하는 명령이다. 실제 작업을 남겨 둘 때는 둘을 혼동하지 말자. (tmux 세션 동작)

6. Claude Code·Ollama·Hermes 작업 공간 만들기

아래 단계는 모두 SSH로 접속한 맥미니에서 진행한다. 먼저 연습용 프로젝트 폴더와 AI 세션을 만든다.

mkdir -p ~/ai-work/demo
cd ~/ai-work/demo
tmux new -s ai -n claude

이미 ai가 있다면 새로 만들지 않고 tmux attach -t ai로 들어간다. 설정을 바꾸지 않은 기본 환경에서는 첫 윈도 번호가 0이다.

윈도 claude: Claude Code 실행

설치되어 있다면 설치 명령은 생략한다. 아래는 Claude Code 공식 설치 안내의 네이티브 설치 방식이다. 다운로드한 설치 스크립트를 실행하는 명령이므로 출처를 확인하고 진행한다.

curl -fsSL https://claude.ai/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"
claude --version
claude

처음 실행하면 인증 안내를 따른다. 원격 환경에서 브라우저가 열리지 않으면 CLI에 표시되는 로그인 URL을 노트북 브라우저에서 열고, 이어지는 CLI 안내를 완료한다. 기본 Claude 서비스 사용에는 해당 계정의 이용 권한과 과금 조건이 적용된다.

처음에는 “현재 폴더를 확인하고, 파일은 수정하지 말고 가능한 작업을 설명해 줘”처럼 결과를 확인하기 쉬운 요청을 해 보자. 일반적인 원격 실행에서도 코드와 명령은 맥미니에서 처리되지만, 선택한 모델 공급자가 클라우드라면 모델 추론은 클라우드에서 수행된다.

윈도 ollama: 모델 서버 실행

Claude Code를 종료하지 않고 Ctrl+b → c로 새 윈도를 만든다. Ctrl+b → ,를 누르고 ollama라고 이름을 붙인다.

CLI 중심 설치에는 Homebrew의 Ollama 패키지를 사용할 수 있다. Ollama 공식 앱으로 이미 설치했다면 중복 설치하지 말고 기존 ollama 명령을 사용한다.

brew install ollama
ollama --version
ollama serve

서버 로그가 보이며 프롬프트로 돌아오지 않는 것이 정상이다. 서버는 이 윈도에서 계속 실행된다. 이미 앱이나 서비스가 11434 포트를 사용 중이라면 서버를 또 켜지 않는다. 다음 단계의 API 확인으로 기존 서버를 사용하면 된다.

윈도 hermes: 모델을 확인하고 에이전트 연결

다시 Ctrl+b → c로 새 윈도를 만들고, Ctrl+b → ,로 hermes라고 이름 붙인다.

cd ~/ai-work/demo
curl http://127.0.0.1:11434/api/tags
ollama pull qwen3:4b
ollama run qwen3:4b

API에서 JSON이 나오면 서버에 연결된 것이다. 모델에 짧은 질문을 하고 /bye로 대화를 끝낸다. 여기서 qwen3:4b는 작은 연결 확인용 예시이지 모든 코딩 작업에 대한 추천 모델은 아니다. 다운로드 크기와 실제 메모리 사용량은 다르며, 컨텍스트 길이와 동시 실행 수가 늘면 메모리가 더 필요하다. 에이전트 작업에는 도구 호출 지원과 실제 작업 정확도도 확인해야 한다.

최신 Ollama에서 다음 명령으로 Hermes 설치·모델 연결 안내를 시작할 수 있다. (공식 연동 문서)

ollama launch hermes

모델 선택 화면에서는 로컬 실행이 목표라면 다운로드한 로컬 모델을 선택한다. :cloud 모델은 원격 모델이다. 메시지 플랫폼 연결은 이 CLI 실습에 필요하지 않으므로 건너뛰어도 된다.

이미 Hermes를 설치했거나 수동 구성을 원하면 다음 경로도 사용할 수 있다. 설치 후 명령이 보이지 않으면 새 SSH 연결을 연 뒤 계속한다.

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes model

모델 설정에서 Ollama 또는 사용자 지정 엔드포인트를 선택한다. 수동 입력 항목은 API 주소 http://127.0.0.1:11434/v1, 모델 이름 qwen3:4b, 로컬 Ollama의 API 키는 비워 두는 구성이 기준이다. 메뉴 문구는 버전에 따라 다를 수 있다. 저장 후 hermes를 실행한다. (Hermes 로컬 모델 안내)

아래 공식 화면에서는 모델 이름, 도구 목록, 스킬 목록을 볼 수 있다. 특히 모델 이름을 확인하는 습관이 중요하다. 예제 이미지의 kimi-k2.5:cloud는 클라우드 모델이며 위의 로컬 모델 실습 결과가 아니다.

Hermes CLI의 모델 이름과 사용 가능한 도구·스킬 목록, 하단 입력창을 보여 주는 공식 예제

Ollama 공식 Hermes 연동 문서 제공 화면. 화면 속 버전과 모델은 문서 예시이며 현재 설치 버전이나 로컬 추론을 뜻하지 않는다. (출처: Ollama, 2026-10-25 확인 · 원본 크게 보기)

Hermes에도 먼저 현재 폴더의 파일 이름만 확인하도록 요청한다. 기존 설정에서 터미널 백엔드를 별도 서버나 컨테이너로 바꾼 적이 있다면 실제 도구 실행 위치도 확인한다. 모델이 로컬이어도 웹 검색·외부 API·메시징 도구를 쓰면 네트워크 요청은 발생할 수 있다.

Claude Code도 Ollama 모델로 실행할 수 있을까

Ollama는 Claude Code를 위한 Anthropic 호환 API 연동도 제공한다. 새 연습 윈도에서 다음 명령으로 모델을 선택할 수 있다.

ollama launch claude

이 구성은 Claude Code라는 인터페이스에서 선택한 Ollama 모델을 사용하는 것이다. Claude 모델 자체가 맥미니에 다운로드되는 것은 아니다. 도구 지원, 추론 품질, 메모리 요구량은 선택한 모델에 달려 있다. 공식 안내의 큰 컨텍스트 권장값을 작은 메모리의 맥미니에 무조건 적용하지 말고, 먼저 작은 작업으로 확인한다. (Ollama의 Claude Code 연동)

7. 매일 쓰는 명령어와 단축키

다음 셸 명령은 맥미니에서 입력한다. -t는 대상 세션을 지정하며, -s는 생성할 세션의 이름을 지정한다.

명령용도
tmux new -s aiai 세션 만들고 연결
tmux ls세션 목록 확인
tmux attach -t ai기존 세션에 연결
tmux new -A -s ai있으면 연결, 없으면 생성
tmux detach-client현재 클라이언트 분리
tmux rename-session -t ai ai-main세션 이름 변경
tmux list-windows -t ai윈도 목록 확인
tmux kill-session -t practice연습 세션과 그 안의 작업 종료

kill-session은 작업을 끝내는 명령이다. 잠시 자리를 비우는 용도로 사용하지 않는다. kill-server는 모든 세션에 영향을 주므로 일반 복귀 절차에 넣지 않는다.

아래 단축키는 기본 키 설정 기준이며, 화살표 앞에서 Ctrl+b를 놓는다.

단축키동작
Ctrl+b → d작업을 남겨 두고 분리
Ctrl+b → c새 윈도
Ctrl+b → ,현재 윈도 이름 변경
Ctrl+b → n / p다음 / 이전 윈도
Ctrl+b → 0 … 9해당 번호 윈도로 이동
Ctrl+b → w윈도 목록에서 선택
Ctrl+b → %좌우로 나누기
Ctrl+b → "위아래로 나누기
Ctrl+b → 방향키다른 패널로 이동
Ctrl+b → z현재 패널 확대 / 복원
Ctrl+b → [스크롤·복사 모드 진입
Ctrl+b → ]tmux 버퍼 붙여넣기
Ctrl+b → :tmux 명령 입력
Ctrl+b → ?키 도움말; q로 닫기

단축키와 명령 전체는 설치된 버전의 man tmux와 공식 매뉴얼을 기준으로 확인한다.

노트북에서 한 번에 접속하려면 다음과 같이 쓴다. -t는 대화형 터미널을 할당한다.

ssh -t macmini 'tmux new -A -s ai'

여기서만 tmux: command not found가 나면 비대화형 SSH 명령의 PATH가 원인일 수 있다. 평소 SSH 접속 후 command -v tmux로 경로를 확인하고, Apple Silicon 기본 Homebrew 경로라면 다음처럼 지정한다.

ssh -t macmini '/opt/homebrew/bin/tmux new -A -s ai'

8. 사용감을 개선하는 작은 설정

맥미니에서 nano ~/.tmux.conf를 열어 아래 설정을 추가한다. 기본 접두 키와 윈도 번호는 바꾸지 않아 앞의 실습과 일치시킨다.

set -g mouse on
set -g history-limit 50000
setw -g mode-keys vi
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
bind r source-file ~/.tmux.conf

tmux 안의 셸에서 다음 명령으로 적용한다.

tmux source-file ~/.tmux.conf

마우스로 패널을 선택하고 크기를 바꿀 수 있다. Ctrl+b → |와 Ctrl+b → -는 현재 경로에서 새 패널을 열고, Ctrl+b → c도 현재 경로를 유지한다. 히스토리 상한은 새로 만든 윈도·패널에서 확인한다.

vi 복사 모드는 Ctrl+b → [로 들어가 방향키로 이동하고, Space로 선택을 시작한 뒤 Enter로 복사한다. q로 빠져나오고 Ctrl+b → ]로 붙여넣는다. 이것은 tmux 내부 버퍼이며 노트북의 클립보드와 항상 같은 것은 아니다.

로컬 Mac 클립보드로 짧은 텍스트 결과만 가져올 때는 노트북의 새 터미널에서 다음 방식도 쓸 수 있다. 활성 패널의 최근 히스토리를 복사하므로 비밀 값이 포함되지 않았는지 확인한다.

ssh macmini '/opt/homebrew/bin/tmux capture-pane -p -S -200 -t ai:claude' | pbcopy

경로는 command -v tmux 결과에 맞춘다. pbcopy가 SSH 따옴표 밖에 있기 때문에 노트북에서 실행된다. 터미널 클립보드 연동을 더 설정하려면 tmux 공식 Clipboard 안내를 참고한다.

9. 모델 서버를 안정적으로 운영하기

맥미니가 잠들지 않도록 하기

노트북이 잠드는 것과 맥미니가 잠드는 것은 다르다. 장시간 작업에는 맥미니의 시스템 설정에서 디스플레이가 꺼졌을 때 자동 잠자기를 방지하는 옵션을 확인한다. 메뉴와 제공 옵션은 기종·macOS 버전에 따라 다르다. (Apple 잠자기 설정)

일시적으로는 맥미니의 별도 tmux 윈도에서 다음 명령을 실행한다.

caffeinate -i

실행 중 유휴 잠자기를 막으며, Ctrl+C로 끝내면 해제된다. 수동 잠자기·전원 차단·재부팅까지 막아 주지는 않는다. 다른 작업이 진행 중일 때 접속한 tmux 클라이언트에만 caffeinate를 묶으면 detach와 함께 방지 효과도 끝날 수 있으므로 별도 윈도로 유지하는 편이 이해하기 쉽다.

계속 쓸 Ollama는 서비스로 전환하기

학습 중에는 ollama serve 로그를 직접 보는 편이 쉽다. 계속 사용할 서버라면 tmux와 별도로 macOS 서비스 관리자인 launchd를 통한 실행을 고려한다. Homebrew 패키지를 설치했다면 기존 serve 윈도에서 Ctrl+C로 서버를 멈춘 뒤 다음 명령을 사용한다.

brew services start ollama
brew services list
curl http://127.0.0.1:11434/api/tags

일반 사용자로 실행하는 Homebrew 서비스는 로그인 시 자동 실행하는 방식이다. 로그인 전 부팅 서비스와 동일하지 않으며, 재부팅 후 FileVault 잠금 해제나 사용자 로그인 조건은 별도로 확인해야 한다. sudo를 붙여 서비스의 실행 계정을 바꾸는 것을 기본 해결책으로 삼지 않는다. (Homebrew 서비스 설명)

모델 상태를 확인할 때는 ollama list, ollama ps, 필요 없어진 모델을 메모리에서 내릴 때는 ollama stop qwen3:4b를 쓴다. stop은 다운로드한 모델 파일 삭제와 다르다. (Ollama CLI)

10. 노트북에서 맥미니의 Ollama API 사용하기

SSH 안에서 ollama나 Hermes를 쓸 때는 터널이 필요 없다. 노트북의 앱이나 스크립트가 맥미니의 모델 API를 호출할 때만 로컬 포워딩을 추가한다.

노트북의 별도 터미널에서 다음을 실행하고 열어 둔다. 노트북에 이미 Ollama가 있어도 충돌을 피하도록 로컬 포트는 11435로 지정했다.

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:11435:127.0.0.1:11434 macmini

노트북의 또 다른 터미널에서 확인한다.

curl http://127.0.0.1:11435/api/tags

첫 번째 127.0.0.1:11435는 노트북이 받는 주소이고, 뒤의 127.0.0.1:11434는 SSH 서버인 맥미니에서 접근할 주소다. 노트북 앱에는 http://127.0.0.1:11435를 넣고, OpenAI 호환 형식을 요구하면 /v1을 붙인다. Ollama를 0.0.0.0에 노출하거나 공유기의 11434 포트를 열 필요가 없다. (OpenSSH 로컬 포워딩)

이 터널은 노트북의 SSH 프로세스가 유지하는 연결이다. 끊기면 다시 실행해야 하며, 원격 tmux가 노트북의 터널까지 복구하지는 않는다.

11. tmux보다 더 잘 맞는 도구가 있을까

아래 선택 기준은 각 도구의 공식 기능을 바탕으로 한 이 글의 판단이다. 모든 용도에서 더 좋은 단일 도구가 있는 것은 아니다.

도구이런 경우에 고려tmux와의 관계·한계
tmuxSSH 중심 작업, 키보드 조작, 셸 스크립트로 작업 공간 구성학습할 접두 키가 있지만 원격 CLI의 출발점으로 적합
Zellij화면에 보이는 키 안내와 레이아웃을 선호터미널 작업 공간 대안. 키 모드와 CLI 앱 단축키 충돌을 확인
MoshWi-Fi 전환·이동통신·지연이 큰 연결연결 계층을 개선. tmux와 함께 사용 가능; SSH 포트 포워딩 대체는 아님
iTerm2 tmux 통합로컬 Mac에서 탭·분할 UI로 원격 작업을 다루고 싶음tmux를 서버로 사용하며 클라이언트 UI를 바꿈
tmux-resurrect재시작 후 윈도·경로·배치를 복원하고 싶음레이아웃과 일부 프로그램 복원 보조. 실행 중 모델의 메모리 상태를 저장하는 기능은 아님

Zellij를 비교해 보고 싶으면 맥미니에 설치해 별도 세션을 만든다. 아래 명령은 tmux에 들어가지 않은 원격 셸에서 실행한다.

brew install zellij
zellij --session ai-test

이동 중 연결 품질이 문제라면 Mosh를 양쪽 컴퓨터에 설치한 뒤 다음처럼 사용할 수 있다. SSH로 인증한 다음 UDP로 통신하므로 방화벽·사설 네트워크에서 필요한 UDP 통신이 허용되어야 한다. 기본 포트 범위는 60000–61000이다.

mosh your_user@192.168.0.20
tmux new -A -s ai

포트 포워딩에는 앞 절의 SSH를 별도로 사용한다. Mosh도 맥미니의 재부팅으로 사라진 프로세스를 되살리지는 않는다. (Mosh 공식 안내)

로컬 터미널이 iTerm2라면 다음 통합 모드를 시험할 수 있다. 일반 터미널에 그대로 적용하는 옵션은 아니다.

ssh -t macmini '/opt/homebrew/bin/tmux -CC new -A -s ai'

처음에는 기본 SSH + tmux를 익힌 뒤, 키 안내가 필요하면 Zellij, 이동 중 끊김이 잦으면 Mosh, Mac의 창 조작을 선호하면 iTerm2 통합을 추가하는 순서를 권한다. 서버 자동 시작은 별도의 서비스 관리 문제로 다룬다.

12. 자주 막히는 상황

증상먼저 확인할 것
SSH 연결 거부·시간 초과원격 로그인, 사용자, 실제 IP, 맥미니 전원·잠자기, 같은 네트워크 여부
Permission denied (publickey)원격 사용자 이름, 공개 키 등록, IdentityFile, .ssh 권한
tmux 안에서만 명령을 찾지 못함설치 후 생긴 PATH 변경이 오래된 셸에 반영됐는지 확인. 새 셸에서 재시도
sessions should be nested with care이미 tmux 안인지 확인하고 Ctrl+b → s로 세션 선택
스크롤하면 셸 기록만 움직임Ctrl+b → [로 tmux 복사 모드 진입, q로 종료
한글·색상·화면이 깨짐로컬 터미널의 UTF-8·폰트·terminfo 지원 확인. Ctrl+b → r은 이 글의 설정에서 재로딩이지 화면 복구가 아님
11434가 이미 사용 중기존 Ollama 앱·서비스 확인. 서버를 중복 실행하지 않기
모델이 지나치게 느림ollama ps와 맥미니의 메모리 상태 확인. 모델·컨텍스트·동시 실행 수 축소
tmux에 돌아왔는데 에이전트가 멈춰 있음승인 요청·모델 오류·네트워크 오류 대기인지 확인
재부팅 후 no server running예상된 동작. 새 tmux 세션을 만들고 도구의 대화 재개 기능 사용

프로세스가 종료된 Claude Code는 프로젝트 폴더에서 claude -c로 최근 대화를 이어가거나 claude -r로 대화를 선택할 수 있다. 이것은 살아 있는 화면에 다시 붙는 tmux attach와 다르다. (Claude Code CLI) Hermes의 대화 관리 명령은 설치 버전의 hermes --help와 공식 CLI 안내를 확인한다.

동시에 여러 에이전트를 쓰더라도 같은 파일을 서로 덮어쓰지 않도록 작업 폴더나 Git worktree를 나누는 방법을 함께 고려하자. tmux는 터미널을 나눌 뿐 파일 충돌까지 막지는 않는다.

13. 오늘 익힐 최소 루틴

첫날에는 연습 루프가 SSH 연결을 닫은 동안에도 계속되는지만 확인해도 충분하다. 다음에는 도구 하나를 실행하고, 익숙해지면 윈도를 늘린다.

  1. 노트북에서 ssh macmini로 접속한다.
  2. 맥미니에서 tmux new -A -s ai로 작업 공간에 들어간다.
  3. Ctrl+b → w로 필요한 도구의 윈도를 고른다.
  4. 자리를 비울 때는 Ctrl+b → d, 이어서 exit를 입력한다.
  5. 돌아오면 같은 두 연결 명령으로 이전 작업을 확인한다.

이 흐름이 익숙해지면 노트북을 바꾸거나 네트워크 연결을 다시 맺어도 맥미니의 작업 공간을 같은 방식으로 사용할 수 있다. 이후에는 Hermes 자동화 실전처럼 반복 작업을 하나씩 추가하면 된다.