SSH로 접속하기
계정에 등록한 공개키로 SSH 게이트웨이에 접속합니다. 사용자 이름이 인스턴스 id입니다.
아직 호출할 수 없습니다. 아래 계약은 공개 Go SDK와 통합 패키지가 이미 쓰는 계약이라 확정되어 있지만, 서버 구현은 만드는 중입니다. 호출할 수 있게 되면 변경 기록에 공지합니다.
인스턴스에는 비밀번호가 없습니다. 콘솔 계정 · SSH 키에 공개키를 등록하면 그 키로만 접속할 수 있고, 사용자 이름 자리에 인스턴스 id를 씁니다. 서버는 비밀을 응답에 담지 않습니다.
ssh -i ~/.ssh/id_ed25519 <instance-id>@<ssh-gateway>
# run one command and exit
ssh -i ~/.ssh/id_ed25519 <instance-id>@<ssh-gateway> \
'xcodebuild -version'
# feed a script on stdin
ssh -i ~/.ssh/id_ed25519 <instance-id>@<ssh-gateway> bash -s < build.sh<ssh-gateway>에 적을 호스트 이름은 여기에 적지 않습니다. 게이트웨이가 준비되면 GET /api/portal/ci/instances/{id}/ssh가 그날의 실제 호스트를 담은 명령을 돌려줍니다 — {"command":"ssh <id>@<ssh-gateway>","key_required":true} 형태이며 비밀키나 비밀번호는 포함하지 않습니다. 아직 준비되지 않았다면 같은 엔드포인트가 501을 돌려줍니다. 이 문서에 호스트 이름을 박아 두면 아무도 응답하지 않는 주소로 접속하게 됩니다.
프록시가 필요한 경우
인스턴스의 외부 통신은 허용목록을 통과합니다. 러너 호스트에만 있는 프록시를 써야 하면 역터널을 열고 HTTP_PROXY·HTTPS_PROXY를 내보내세요. GitLab·Buildkite 통합 패키지는 이 과정을 옵션으로 제공합니다.
ssh -R 8080:127.0.0.1:3128 -i ~/.ssh/id_ed25519 <instance-id>@<ssh-gateway> \
'export HTTP_PROXY=http://127.0.0.1:8080 HTTPS_PROXY=http://127.0.0.1:8080; ./ci.sh'SSH 게이트웨이는 아직 만들어지지 않았으므로 지금은 실제 접속이 되지 않습니다. 기본 호스트 이름은 어디에도 없습니다 — 통합 패키지는 신뢰 러너 설정의 CICD_SSH_GATEWAY에서, 포털 API는 CI_INSTANCE_SSH_HOST에서 읽고, 설정되지 않았으면 접속을 시도하는 대신 그 사실을 말합니다.