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 흐름은 다음과 같습니다:
- CLI가 MFA 인증 링크를 표시합니다
- 브라우저에서 링크를 열어 MFA 인증을 완료합니다
- 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 관리를 참고하세요.