원격 액세스SSH
원격 액세스

SSH

cmux ssh는 원격 시스템을 위한 작업 공간을 만듭니다. 브라우저 창은 원격 네트워크를 통해 라우팅되고, scp를 통해 파일을 끌어서 놓으며, 코딩 에이전트는 로컬 사이드바에 알림을 보내고, 세션은 삭제 시 다시 연결됩니다.

사용법

cmux ssh user@remote
cmux ssh user@remote --name "dev server"
cmux ssh user@remote --command 'omp "investigate auth"'
cmux ssh user@remote -p 2222
cmux ssh user@remote -i ~/.ssh/id_ed25519
cmux ssh user@remote --transport mosh
cmux mosh user@remote
cmux mosh-tmux user@remote
cmux mosh-tmux user@remote --session agent-main

cmux ssh는 ~/.ssh/config에서 호스트 별칭, ID 파일 및 프록시 설정을 읽습니다. 모든 플래그는 SSH에 해당하는 플래그를 반영합니다.

플래그

깃발설명
--name작업공간 제목 설정
--command셸 시작 후 첫 원격 터미널에서 명령 텍스트를 한 번만 실행
-p, --portSSH 포트(기본값 22)
-i, --identityID 파일 경로
-o, --ssh-option임의 SSH 옵션 전달(예: -o StrictHostKeyChecking=no)
--transport대화형 터미널 전송 방식: ssh(기본값) 또는 mosh
--no-focus작업공간으로 전환하지 않고 작업공간 만들기

Mosh 터미널 전송 방식

Wi-Fi, VPN, 핫스팟 전환이나 잠자기 및 깨우기 후에도 대화형 터미널을 유지하려면 cmux ssh user@remote --transport mosh를 사용하세요. Mosh는 터미널 PTY만 전달하며, 원격 메타데이터, cmux 서비스 설정 및 제어, 브라우저 프록시, 업로드, 재연결은 계속 SSH가 관리합니다.

cmux는 로컬에 Mosh 1.4 이상이 필요하며 시작 전에 원격 mosh-server를 확인합니다. 클라이언트가 없거나 호환되지 않거나, 서버가 없거나, 원격 확인에 실패하면 cmux가 이유를 설명하고 SSH로 계속합니다.

이름 있는 tmux 세션을 만들거나 연결하는 Mosh 워크스페이스를 만듭니다(기본값: main). tmux 프로필은 재연결 및 앱 세션 복원 후에도 유지됩니다. 이는 로밍 tmux 터미널이며 cmux ssh-tmux의 네이티브 미러가 아닙니다. --session <name>으로 세션을 선택하며 나머지 플래그는 cmux mosh와 같습니다. Mosh가 없으면 같은 프로필을 SSH로 실행합니다.

웹사이트나 도구가 cmux에서 열기 버튼을 제공하려는 경우 cmux SSH 딥 링크를 사용하세요. 링크는 cmux를 열고 확인 프롬프트를 표시한 다음 사용자가 확인한 후 해당 cmux ssh 명령을 실행합니다.

cmux://ssh?host=dev.example.com
cmux://ssh?host=dev.example.com&user=alice&port=2222&title=GPU%20box
cmux://ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token
cmux://ssh?host=dev.example.com&host-key-policy=accept-new&no-focus=true

웹사이트 버튼에는 cmux.com 대체 URL을 사용하세요. 기본 링크가 열리고 cmux가 설치되지 않은 경우 다운로드가 표시됩니다.

https://cmux.com/deeplink/ssh?host=workspace123.vm-ssh.freestyle.sh&user=workspace123%2Csession-token&title=Freestyle

프롬프트 및 규칙 버튼은 동일한 대체 모양을 사용합니다. 쉼표, 콜론 및 리터럴 더하기 기호는 URL 인코딩 시 보존됩니다.

https://cmux.com/deeplink/prompt?text=Review%20this%20branch
https://cmux.com/deeplink/rules?name=freestyle&text=Prefer%20commas,%20colons:%20and%20small%20PRs

대시보드 버튼에는 SVG 아이콘을 사용하고, 래스터 이미지가 필요한 경우에는 PNG 로고를 사용하세요.

https://cmux.com/cmux-icon.svg
https://cmux.com/logo.png

제목, 호스트 별칭 및 사용자 이름이 안전하게 인코딩되도록 URLSearchParams를 사용하여 대체 URL을 구축합니다.

const params = new URLSearchParams({
  host: "workspace123.vm-ssh.freestyle.sh",
  user: "workspace123,session-token",
  title: "Freestyle",
});

const href = "https://cmux.com/deeplink/ssh?" + params.toString();
매개변수의미
host필수 SSH 호스트 또는 ~/.ssh/config 별칭.
user선택적 SSH 사용자. cmux는 이를 user@host로 호스트와 결합합니다.
port선택적 SSH 포트(1~65535).
title / name선택적 작업공간 제목입니다. 직함이나 이름 중 하나만 사용하세요.
connect-timeout선택적 ConnectTimeout 값(초)(1~600).
server-alive-interval선택적 ServerAliveInterval 값(1~3600초)입니다.
server-alive-count-max선택적 ServerAliveCountMax 값(1~100)입니다.
host-key-policy선택적 StrictHostKeyChecking 정책: accept-new, Ask, strict 또는 yes.
no-focus선택적 부울입니다. true는 작업 공간으로 전환하지 않고 작업 공간을 만듭니다.

안정적인 앱의 경우 cmux://를 사용하고 Nightly의 경우 cmux-nightly://를 사용하며 디버그 또는 태그가 지정된 개발 빌드의 경우 cmux-dev://를 사용합니다.

외부 링크는 ID 파일, 원시 SSH 옵션, 명령, ProxyCommand 또는 전달 규칙을 전달할 수 없습니다. 대신 ~/.ssh/config에 키, ProxyJump, HostName 및 고급 옵션을 넣으세요. cmux는 명령 미리보기를 표시하며 사용자가 연결하기 전에 SSH 대상을 신뢰하도록 요구합니다.

브라우저 창

원격 작업 공간의 브라우저 창은 원격 시스템의 네트워크를 통해 모든 HTTP 및 WebSocket 트래픽을 라우팅합니다. localhost:3000을 입력하면 원격 상자에서 실행 중인 개발 서버가 표시됩니다. -L 플래그가 없고 수동 포트 전달이 없습니다. 각 원격 작업 공간은 격리된 쿠키 저장소를 가져오므로 세션 범위는 연결별로 지정됩니다.

드래그 앤 드롭

이미지나 파일을 원격 터미널로 드래그하면 cmux가 기존 SSH 연결을 통해 scp를 통해 업로드합니다. cmux는 TTY로 포그라운드 SSH 프로세스를 감지하고 ControlMaster 멀티플렉싱을 통해 업로드를 라우팅합니다.

알림

원격 시스템의 프로세스는 로컬 인스턴스에서 실행되는 cmux 명령을 실행할 수 있습니다. 코딩 에이전트가 원격 상자에서 cmux 알림을 호출하면 알림이 로컬 사이드바에 나타납니다. 작업 공간 탭에 파란색 링이 켜집니다. Cmd+Shift+U를 누르면 해당 위치로 이동합니다. 불안정한 연결로 인한 알림 스팸은 호스트별 쿨다운을 통해 억제됩니다.

SSH를 통한 코딩 에이전트

cmux claude-teams 및 cmux omo는 모두 SSH 세션 내에서 작동합니다. 원격 호스트의 Go 릴레이 데몬은 로컬 Swift CLI가 수행하는 것과 동일한 tmux-compat 변환을 처리합니다. Teammate 에이전트는 원격 상자에서 계산이 실행되는 동안 로컬 컴퓨터에서 기본 cmux 분할로 생성됩니다.

# Inside an SSH session:
cmux claude-teams
cmux omo

다시 연결

연결이 끊어지면 cmux는 지수 백오프(3초, 6초, 12초, 최대 60초)를 사용하여 다시 연결합니다. 원격 세션이 지속되고 cmux는 재연결 시 다시 연결되어 가장 작은 화면 우선 의미에 따라 크기가 조정됩니다. 구성에서 이미 설정하지 않은 경우 기본 keepalive 옵션(ServerAliveInterval=20, ServerAliveCountMax=2)이 삽입됩니다.

릴레이 데몬

처음 연결 시 cmux는 원격 호스트를 검색하고(uname -s, uname -m) 버전이 지정된 cmuxd-remote 바이너리를 업로드합니다. 바이너리는 stdio를 통해 JSON-RPC를 말하고 다음 세 가지를 처리합니다.

특징어떻게
브라우저 트래픽 프록시데몬의 stdio 채널을 통한 SOCKS5 및 HTTP CONNECT
CLI 릴레이원격 프로세스가 로컬에서 cmux 명령을 호출할 수 있도록 HMAC-SHA256 인증을 사용하는 역방향 TCP 터널
세션 관리재연결 시 세션을 유지하고 여러 첨부 파일에 걸쳐 PTY 크기 조정을 조정합니다.

데몬 바이너리는 원격 호스트의 ~/.cmux/bin/cmuxd-remote/<version>/<os>-<arch>/cmuxd-remote에 저장되며 앱에 포함된 SHA-256 매니페스트에 대해 확인됩니다.

이 페이지가 도움이 되었나요?
이슈 등록