콘텐츠로 이동

SSH 작업 트리

Orca은 SSH를 통해 원격 시스템에서 에이전트를 구동할 수 있습니다. 이는 장기 실행 빌드, GPU 상자 또는 노트북이 작업을 실행하기에 적합하지 않은 모든 환경에 유용합니다.

네 가지 실행 모드 중 하나

SSH는 원격 컴퓨팅 환경에서 에이전트를 실행하는 한 가지 방법입니다. 로컬, 자체 호스팅 서버 및 임시 VM 방식은 Orca 실행 방식을 참조합니다.

SSH 원격 작업공간 — 에이전트는 원격 호스트에서 실행되고 편집기 및 차이점은 로컬로 유지됩니다.

SSH 원격 작업 공간 — 에이전트는 원격 호스트에서 실행되고 편집기와 차이점은 로컬로 유지됩니다.

  1. Settings → SSH(설정 → SSH)를 엽니다.
  2. **Add Target(대상 추가)**을 클릭합니다. 호스트 양식은 목록 아래의 인라인 영역이 아니라 모달로 열리므로 호스트 목록이 길어도 Host(호스트), Advanced(고급) 및 Save(저장)에 접근할 수 있습니다. 편집할 때도 같은 대화 상자를 사용하며 대상 레이블과 user@host:port를 함께 표시합니다.
  3. 호스트, 사용자, 포트 및 선택적 ID 파일을 입력합니다. 또는 같은 대화 상자에서 OpenSSH config(OpenSSH 구성) 선택기를 열어 ~/.ssh/config을 검색하고 Include 지시문에서 불러오는 파일까지 포함해 호스트 하나를 선택하여 양식을 미리 채웁니다. Orca에 이미 저장된 호스트에는 In Orca(저장됨) 배지가 표시됩니다. 해당 흐름을 사용할 수 있으면 구성에서 호스트를 일괄로 가져올 수도 있습니다.
  4. 키가 암호로 보호된 경우 Orca가 처음 사용할 때 입력을 요청합니다.
  5. **Test(테스트)**를 클릭하여 연결을 확인한 다음 **Save(저장)**를 클릭합니다.

변경 사항이 있는 add/edit 양식은 바깥쪽 클릭을 무시하므로 실수로 다른 곳을 클릭해도 입력한 필드가 사라지지 않습니다. 입력 내용을 버리려면 Escape(Esc 키), Cancel(취소) 또는 ×를 사용합니다.

Orca는 기본 제공 SSH 연결을 유효한 OpenSSH known_hosts 파일 및 이전에 저장한 키와 대조해 확인합니다. 기존 항목이 일치하면 별도 안내 없이 연결합니다. 기본 정책에서는 Orca가 호스트에 처음 접속할 때 이를 허용하고 기억하며 지문을 표시합니다. StrictHostKeyChecking yes는 알 수 없는 호스트를 거부하고, no / off는 신뢰 기록을 저장하지 않고 허용합니다.

변경되었거나 폐기되었거나 예기치 않게 유형이 다른 키는 Orca가 암호 또는 키 암호를 묻기 전에 거부됩니다. 호스트를 의도적으로 재구축하거나 다시 프로비저닝했다면 먼저 새 지문을 확인한 다음 오류에 표시된 복구 절차를 따릅니다. known_hosts 불일치인 경우 Orca는 적절한 ssh-keygen -R 명령어를 제공합니다(필요한 경우 대괄호로 묶인 호스트와 포트 포함).

작업 트리를 생성할 때 로컬 대신 SSH 대상을 선택합니다. Orca은 다음을 수행합니다.

  • 원격 호스트에 git 작업 트리를 만듭니다.
  • SSH 연결을 통해 원격으로 에이전트를 실행합니다.
  • 편집기, 차이점 및 브라우저가 여전히 로컬처럼 느껴지도록 파일 이벤트를 동기화합니다.

Settings → SSH(설정 → SSH)를 열고, 대상을 편집하고, 호스트에 프록시, 점프 호스트 또는 SSH 멀티플렉싱 재정의가 필요한 경우 Advanced Connection(고급 연결)을 확장합니다. Orca은 기본적으로 Reuse SSH connection for faster setup(더 빠른 설정을 위해 SSH 연결 재사용)을 활성화합니다. 이는 macOS 및 Linux에서 OpenSSH 연결 재사용을 사용하므로 설정 명령이 각각 새로운 SSH 핸드셰이크를 지불하지 않습니다. SSH 정책이 멀티플렉싱 세션을 거부하는 호스트에 대해서만 이 기능을 끄십시오.

암호는 Orca 세션이 지속되는 동안 메모리에 보관됩니다. Orca를 닫으면 해당 내용이 지워집니다. SSH 설정에서 더 긴 TTL을 선택할 수 있습니다.

확인 코드나 기타 키보드 대화형 프롬프트(일회용 암호, MFA 요청 또는 유사한 프롬프트)를 요구하는 호스트도 기본 제공 연결을 통해 사용할 수 있습니다. Orca가 프롬프트를 사용자에게 전달하고 답변을 호스트로 전달합니다. 프롬프트가 스크립트로 작성된 설정 단계의 일부이면 연결에 실패하는 대신 사용자가 답할 수 있는 단계로 연기됩니다.

원격 작업 트리는 실시간 SSH 상태 칩을 표시합니다. 연결됨은 녹색, 다시 연결 중은 노란색, 연결 끊김은 빨간색입니다. SSH 호스트가 아직 연결 중일 때 Orca는 지속된 로컬 메타데이터에서 작업 공간을 나열할 수 있으므로 실시간 공급자가 준비될 때까지 사이드바가 비어 있지 않습니다. 연결이 안정되면 해당 행이 신뢰할 수 있는 원격 상태로 새로 고쳐집니다. 연결이 끊겨도 실행 중인 에이전트는 종료되지 않습니다. Orca는 다시 연결하고 재연결하며 스크롤 출력을 재생하고 전체 화면 앱 창을 빈 화면이나 조각난 상태로 돌려놓지 않고 렌더링된 프레임에서 복원합니다. 복원된 SSH 터미널이 다시 연결되는 동안 입력한 키도 버려지지 않고 유지됩니다. 호스트 연결이 끊기면 영향을 받은 작업 공간 카드에 인라인 Connect(연결) / 재연결 컨트롤이 표시될 수 있어 터미널 오버레이나 상태 표시줄을 찾지 않고 복구할 수 있습니다. “Multiplexer disposed” 유형 오류로 SSH 연결이 끊기면 Orca가 자동으로 복구하므로 재시작할 때까지 창이 멈춰 있지 않습니다. 에이전트 상태(작업 중/유휴/차단)는 로컬과 같은 방식으로 SSH를 통해 전파되므로 사이드바와 에이전트 피드에 원격 에이전트 상태가 실시간으로 반영됩니다.

데스크톱 앱을 닫아도 더 이상 원격 PTY 세션이 종료되지 않습니다. 세션은 호스트의 관리형 Orca 서버에 있으므로 노트북에서 Orca를 닫아도 유지됩니다. 앱을 다시 열고 대상에 연결하면 스크롤백이 유지된 attached(연결됨) 상태로 세션이 해당 탭에 복원됩니다. 관리 서버의 구조화된 채팅은 응답 실행 중이거나 질문이 대기 중일 때 공급자를 계속 로드하므로 데스크톱 연결이 끊겨도 승인이 남아 있습니다. 호스트와 연결이 끊겼다는 사실만으로 작업이 중지된 것은 아니므로 같은 작업 트리에서 두 번째 에이전트를 시작하기 전에 호스트를 확인합니다.

열린 파일, 실행 중인 에이전트 탭 및 일시 중지된 Claude 또는 Codex 재개 제안은 SSH 재연결과 앱 재시작 후에도 유지되므로 작업 공간이 떠났을 때의 상태로 돌아옵니다. 연결이 끊긴 동안 입력한 키는 연결이 복구되면 순서대로 정확히 한 번 전달되며, 창의 스크롤백과 크기도 재연결 후 유지됩니다. 관리형 서버 업데이트 후에는 열린 탭이 다시 연결됩니다. 오래전에 닫은 탭이 더 이상 빈 셸로 돌아오지 않으며, 마지막 탭을 닫은 SSH 작업 트리를 클릭하면 새 터미널이 열립니다.

텍스트를 출력하는 셸 시작 파일, 항목이 수만 개에 이르는 폴더 및 64비트 ARM Linux 서버로 인해 더 이상 연결이 끊기거나 실패하지 않습니다. 두 컴퓨터가 한 경로를 공유할 때 파일, 브라우저 탭, 링크 및 끌어서 놓기 작업은 각각 원래 소속된 컴퓨터에 유지됩니다.

기본적으로 SSH 호스트에서 실행되는 orca 명령은 해당 호스트 자체의 터미널 및 오케스트레이션 메시지에만 접근합니다. 그곳의 에이전트는 자신을 파견한 코디네이터에 계속 보고할 수 있지만 다른 호스트, 데스크톱 제어, 계정 또는 설정에는 접근할 수 없습니다. 해당 호스트의 에이전트가 orca를 통해 작업 트리를 만들고, 터미널을 열고, 작업을 파견하도록 허용하려면 해당 호스트의 **Allow this host's orca CLI to control Orca(이 호스트 CLI의 앱 제어 허용)**을 켭니다(Settings → SSH → edit the host → Advanced Connection(설정 → SSH → 호스트 편집 → 고급 연결)). v1.4.224에서 이어진 터미널에는 orca가 없습니다. 같은 호스트의 새 터미널에서 orca 명령을 실행합니다.

SSH 작업 트리 파일 탐색기에서 마우스 오른쪽 버튼을 클릭합니다.

  • File(파일) → Download(다운로드) — 네이티브 저장 대화 상자를 열고 파일을 노트북에 복사합니다.
  • Folder(폴더) → Download Folder(폴더 다운로드) — 선택한 폴더에 재귀적으로 다운로드합니다(데스크톱만 해당).

Orca는 연결과 동일한 SSH 전송 경로를 사용합니다. 폴더 다운로드는 연결에서 재귀 폴더 전송(일반적으로 전체 SFTP)을 지원한다고 알릴 때만 표시됩니다. 시스템 OpenSSH 전용 전송을 유지하는 연결은 파일을 다운로드할 수 있어도 **Download Folder(폴더 다운로드)**가 표시되지 않을 수 있습니다.

이 작업은 데스크톱 전용입니다. Electron의 저장 대화 상자를 사용하므로 웹 클라이언트에는 Download(다운로드)가 제공되지 않습니다.

SSH 작업 트리에서 구성한 앱이 VS Code 또는 VS Code Insiders(code / code-insiders 또는 해당 실행기의 직접 경로)이면 작업 트리 메뉴의 Open in(다음에서 열기) 목록에서 원격 경로를 VS Code Remote-SSH에 전달할 수 있습니다.

  1. **Settings(설정) → General(일반) → Open in menu(다음에서 열기 메뉴)**를 구성하여 VS Code가 목록에 표시되게 합니다(사전 설정 또는 사용자 지정 명령).
  2. SSH 작업 트리를 마우스 오른쪽 버튼으로 클릭하거나 작업 트리 더보기 메뉴를 사용하여 **Open in(다음에서 열기) → VS Code**를 선택합니다.
  3. Orca가 해당 호스트와 작업 트리 경로(--remote ssh-remote+<host> <path>)에 대해 Remote-SSH를 사용하여 VS Code를 실행합니다. 메뉴 항목에 Remote SSH 배지가 표시될 수 있습니다.

이 원격 경로에서는 지원되지 않음: Cursor, Zed, 복합 셸 명령 또는 Remote Orca Server 활성 런타임을 통한 열기는 지원되지 않으며 **Local only(로컬 전용)**로 유지됩니다. Finder/Explorer 항목은 로컬 경로에만 사용합니다.

OpenSSH 구성의 호스트에 GSSAPIAuthentication yes가 설정되어 있으면 Orca는 해당 대상에 시스템 OpenSSH 전송을 우선 사용합니다(내장 ssh2 클라이언트는 GSSAPI를 지원하지 않음). 연결하기 전에 유효한 Kerberos 티켓(kinit / 조직의 SSO)을 유지합니다. 수동 대상도 시스템 SSH를 사용하도록 구성하면 GSSAPI를 활성화할 수 있습니다.

구성에서 가져온 호스트에 별도의 Kerberos mode(Kerberos 모드) 스위치를 켤 필요는 없습니다. 가져오기/ssh -G가 플래그를 전달합니다.

하드웨어 기반 OpenSSH ID(ed25519-sk, ecdsa-sk, 에이전트 기반 보안 키 포함)도 내장 ssh2 클라이언트 대신 시스템 OpenSSH를 사용합니다. Orca은 ID 파일에서 키 유형을 감지하고 연결을 OS OpenSSH 바이너리에 넘기므로 터치/PIN 프롬프트가 평소처럼 작동합니다. 일반 Ed25519, ECDSA 및 RSA 키는 내장 전송 방식을 계속 사용합니다. 시스템에서 OpenSSH를 사용할 수 없으면 이를 설치해 PATH에 추가하거나 일반적인 Windows/macOS/Linux 위치에 배치할 때까지 해당 FIDO2 대상에서 인증할 수 없습니다.

처음 연결할 때 Orca는 호스트에 자체 서버, 즉 함께 제공하며 최신 상태로 유지하는 고정 버전 런타임을 설정합니다. 따라서 호스트의 Node 버전이 잘못되었거나 빌드 도구가 없어도 더 이상 연결이 실패하지 않습니다. 이 기능을 켜는 별도 설정은 없습니다.

컴퓨터와 호스트 어느 쪽에서도 Node.js 런타임을 다운로드할 수 없으면 연결 오류에 **Use a Node.js mirror…(Node.js 미러 사용…)**가 표시됩니다. 미리 입력된 미러를 검토하거나 바꾼 다음 **Save and retry(저장 후 재시도)**를 선택합니다. Orca는 각 다운로드를 고정된 체크섬과 대조해 확인합니다. 구성한 미러도 실패하면 다시 연결하기 전에 **Settings → Advanced → Network(설정 → 고급 → 네트워크)**를 열어 미러를 수정합니다.

  • 비어 있는 호스트는 설정 후 관리 서버에 연결됩니다.
  • 이미 Orca 프로젝트가 있지만 열린 터미널이 없는 호스트는 다음 연결 시 프로젝트, 폴더, 프로젝트 그룹 및 열린 편집기 탭을 관리 서버로 이동합니다.
  • v1.4.224에서 실행 중인 채로 남은 터미널은 업그레이드와 재연결 중에도 기존 탭에서 계속 작동하며, 해당 호스트의 새 터미널은 관리 서버에서 열립니다.
  • 관리 서버를 실행할 수 없는 호스트는 더 이상 이전 SSH 런타임으로 대체되지 않습니다. 해당 이유와 함께 연결이 실패하고 **Settings → SSH Hosts(설정 → SSH 호스트)**에 이유가 표시됩니다. 해당 호스트에 계속 연결하려면 이전 Orca 버전을 사용합니다.

**Settings → Managed servers(설정 → 관리형 서버)**에서 각 서버를 관리합니다. 버전과 실행 중인 터미널을 확인하고, Update(업데이트) 또는 **Roll back(롤백)**하거나, 중단된 업데이트를 **Recover(복구)**하고, 서버를 Stop…(중지…) / **Forget…(잊기…)**할 수 있습니다. CLI에서도 orca environment status|update|rollback|recover|stop|forget을 사용하여 같은 작업을 수행할 수 있습니다. CLI 참고를 참조합니다.

이전의 호스트별 Runtime(런타임) 선택기(Auto / Orca 관리형 Node / Host Node)와 릴레이 전용 수명 주기 설정은 제거되었습니다. 모든 SSH 연결은 관리형 Orca 서버에서 실행됩니다. 지원되지 않는 OS나 CPU, noexec 홈 디렉터리 또는 포트 전달을 거부하는 SSH 서버 때문에 Orca가 호스트에서 관리 서버를 실행할 수 없으면 자동으로 대체하지 않고 **Settings → SSH Hosts(설정 → SSH 호스트)**에 연결할 수 없는 이유를 표시합니다.

원격 작업 트리의 오른쪽 사이드바에는 Ports(포트) 탭이 표시되며 Cmd+Shift+I로 전환할 수 있습니다. Orca는 노트북이 아니라 작업 트리가 실행되는 관리형 SSH 서버 또는 페어링된 서버인 작업 공간 자체 호스트를 스캔하고 Detected(감지됨) 아래에 수신 대기 중인 포트를 나열합니다. 한 번 클릭해 로컬로 전달할 수 있고 같은 패널에서 감지된 포트를 중지할 수 있습니다. 전달을 직접 추가, 편집 또는 제거할 수도 있습니다. 저장된 전달은 관리 호스트가 다시 연결된 후 복원되고 앱 재시작 후에도 유지되며, 권한이 필요한 원격 포트는 로컬에서 자동으로 다시 매핑됩니다(예: 원격 80 → 로컬 10080).