alpacon websh

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

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

옵션 (Options)

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

플래그 (Flags)

사용자 및 그룹 제어

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

환경 변수

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

세션 공유

  • -s, --share - 임시 링크를 통해 현재 터미널을 다른 사용자와 공유
  • --url [SHARED_URL] - 참여할 공유 세션의 URL 지정
  • -p, --password [PASSWORD] - 공유 세션에 액세스하는 데 필요한 비밀번호 지정
  • --read-only=[true|false] - 공유 세션을 읽기 전용 모드로 설정 (기본값은 false)

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

예제

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]

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 인증은 워크스페이스 인증 정책에서 구성된 기간 동안 유효합니다. 각 사용자는 보안 설정에서 워크스페이스가 정한 범위 내에서 자신의 타임아웃을 조절할 수 있습니다. 이 기간 내 후속 시스템 계정 접속에는 재인증이 필요하지 않습니다.

API 토큰 ACL

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

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

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

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