alpacon websh

서버와 상호작용하기 위한 websh 터미널을 열거나 서버에서 직접 명령을 실행합니다. SSH와 유사한 user@host 구문을 지원하여 사용자 이름을 인라인으로 지정할 수 있습니다.

alpacon websh [flags] [USER@]SERVER [COMMAND]

Windows 서버에서 셸은 PowerShell이며, 표시된 계정이나 --username/--groupname 플래그와 무관하게 명령은 SYSTEM 권한으로 실행됩니다. Windows 서버를 참고하세요.

옵션 (Options)

  -h, --help   websh 명령어에 대한 도움말 출력

플래그 (Flags)

사용자 및 그룹 제어

  • -u, --username [USER_NAME] - 명령을 실행할 사용자 이름 지정
  • -g, --groupname [GROUP_NAME] - 명령을 실행할 그룹 이름 지정

환경 변수

  • --env="KEY=VALUE" - 명령에 대한 환경 변수 ‘KEY’를 ‘VALUE’로 설정
  • --env="KEY" - 환경 변수 ‘KEY’에 대해 현재 셸의 값 사용

세션 공유

  • -s, --share - 임시 링크를 통해 현재 터미널을 다른 사용자와 공유
  • --read-only=[true|false] - 공유 세션을 읽기 전용 모드로 설정 (기본값은 false)

작업 세션

  • --work-session [UUID] - 이 세션을 작업 세션에 연결 (alpacon work-session use로 지정한 활성 세션보다 우선)

참고: 모든 플래그는 서버 이름 앞에 배치해야 합니다. 서버 이름 뒤의 모든 내용은 원격 명령으로 처리됩니다.

예제

websh 터미널 열기

서버용 websh 터미널 열기:

alpacon websh my-server

root 사용자로 열기:

alpacon websh root@my-server

특정 사용자 및 그룹으로 열기:

alpacon websh admin@my-server
alpacon websh -u admin -g developers my-server

명령 실행

서버에서 직접 명령 실행:

alpacon websh my-server "ls -la /var/log"

특정 사용자로 명령 실행:

alpacon websh root@my-server "systemctl status nginx"
alpacon websh -u admin -g developers my-server "docker ps"

환경 변수

명령에 대한 환경 변수 설정:

alpacon websh --env="KEY1=VALUE1" --env="KEY2=VALUE2" my-server "echo $KEY1"

현재 셸의 환경 변수 사용:

alpacon websh --env="HOME" my-server "echo $HOME"

터미널 세션 공유

현재 터미널 공유:

alpacon websh --share my-server
alpacon websh --share --read-only=true my-server

기존 공유 세션에 참여:

alpacon websh join --url [SHARED_URL] --password [PASSWORD]

작업 세션에 연결

alpacon websh --work-session 11111111-2222-3333-4444-555555555555 my-server

작업 세션 요구 사항

브라우저 로그인으로 인증한 경우, alpacon websh를 실행하려면 활성 작업 세션이 필요합니다. 대화형 터미널은 websh 기능이, 명령을 직접 실행하는 방식(alpacon websh my-server "command")은 command 기능이 필요합니다. 토큰 인증(API 토큰 또는 서비스 토큰)은 이 요구 사항을 우회합니다.

연결할 세션은 --work-session 플래그, ALPACON_WORK_SESSION 환경 변수, alpacon work-session use로 지정한 활성 세션 순으로 결정됩니다. 게이트가 작업을 거부하면 websh는 종료 코드 3으로 종료합니다. --output json으로 실행하면 stderr에서 기계가 읽을 수 있는 진단을 받을 수 있습니다. 에러 코드는 게이트 에러를 참고하세요.

MFA 인증

시스템 계정으로 접속할 때(예: root@my-server), 워크스페이스 인증 설정에 따라 추가 MFA 인증이 필요할 수 있습니다.

CLI에서의 MFA 흐름은 다음과 같습니다:

  1. CLI가 MFA 인증 링크를 표시합니다
  2. 브라우저에서 링크를 열어 MFA 인증을 완료합니다
  3. CLI가 자동으로 인증 성공을 감지하고 작업을 계속합니다

MFA 링크는 3분 후 만료됩니다. 링크가 만료되면 명령을 다시 실행하여 새 링크를 받으세요.

$ alpacon websh root@my-server
MFA authentication required.
Please open the following URL in your browser to complete MFA authentication:

  https://app.alpacon.io/mfa/verify?token=abc123

Waiting for MFA authentication... (timeout: 3m0s)
MFA authentication successful.

MFA 인증은 워크스페이스 인증 설정에서 구성된 기간 동안 유효하며, 멤버가 개별적으로 조절할 수 없습니다. 이 기간 내 후속 시스템 계정 접속에는 재인증이 필요하지 않습니다.

인증은 프롬프트에 응답한 CLI 설치에 귀속됩니다. 따로 로그인한 브라우저로는 만족되지 않고, 다른 기기의 CLI도 마찬가지입니다.

API 토큰 ACL

API 토큰으로 websh에 명령을 직접 전달할 때(예: alpacon websh my-server "command"), 각 명령에 대한 ACL 규칙이 토큰에 있어야 합니다. 대화형 websh 세션은 명령 ACL의 제한을 받지 않습니다.

# Allow the commands this token can run on servers
alpacon token acl command add my-token --command="pm2 restart *"
alpacon token acl command add my-token --command="systemctl status *"
alpacon token acl command add my-token --command="git pull"

매칭되는 ACL 규칙이 없으면 명령이 거부됩니다. *를 와일드카드로 사용하여 가변 인수를 허용할 수 있습니다 (예: echo *echo "hello"와 매칭).

와일드카드 패턴에 대한 자세한 내용은 토큰 ACL 관리를 참고하세요.

관련 명령

최종 수정: