← VibeShell Gateway

설정 파일의 키는 열 개, 읽지 않는 키는 넷.

/etc/vibeshell-gateway/gateway.yaml 을 고치고 서비스를 재시작하면 됩니다. 아래 표의 기본값은 install.sh 가 써 주는 값 그대로입니다.

코드가 읽는 키

기본값
server.listen:8022SSH 프록시가 받는 주소. 앱이 붙는 포트
server.health_listen:8080헬스체크 HTTP
server.max_connections100동시 연결 상한
server.idle_timeout300s유휴 연결 끊기
tailscale.enabledtruefalse 면 Direct 모드. listen 포트에서 그냥 받습니다
tailscale.hostnamevibeshell-gatewaytailnet 에서 보이는 이름. 주소는 hostname.tailnet.ts.net
tailscale.auth_key""Tailscale Admin Console 에서 만든 tskey-auth-…. 비우면 첫 실행 때 로그인 URL 을 찍습니다
tailscale.state_dir/var/lib/vibeshell-gateway/tsnet-statetsnet 상태. 지우면 다시 인증
targets[0].host, portlocalhost, 22뒤에 있는 SSH 서버. 지금은 첫 항목만 씁니다
logging.level, format, outputinfo, text, stdoutjournalctl 로 봅니다

있지만 아직 읽지 않는 키

install.sh 가 만드는 파일에 들어 있지만 v0.1.0 은 무시합니다. 적어 두는 이유는 있는 줄 알고 기대하지 않게 하려는 것입니다.

지금
auth.pairing_timeout, token_ttl, refresh_window페어링과 토큰 인증. 설정만 있고 코드가 읽지 않습니다
targets[].allowed_users사용자 제한. 읽지 않습니다. 인증은 SSH 서버가 합니다
access_control읽지 않습니다
logging.metadata_only읽지 않습니다. 로그는 원래 접속 메타데이터만 남깁니다

두 모드

주소누가 닿나쓰는 때
Tailscalehostname.tailnet.ts.net:8022 또는 100.x.x.x:8022같은 tailnet 의 기기만기본. 집이나 회사 사설망 서버
Direct서버IP:8022그 포트에 닿는 누구나이미 닿는 내부망. 인터넷에 열지 않습니다

헬스체크

$ curl http://localhost:8080/health
{
  "status": "ok",
  "version": "v0.1.0",
  "uptime": "3h12m",
  "active_connections": 1,
  "tailscale_enabled": true,
  "tailscale_hostname": "vibeshell-gateway"
}

VibeShell 앱은 게이트웨이를 등록할 때 SSH 포트를 HTTP 포트로 바꿔 이 주소를 부릅니다. tailnet 안이면 hostname.tailnet.ts.net:8080 으로도 됩니다.

systemd

명령
시작sudo systemctl start vibeshell-gateway
부팅 시 자동 시작sudo systemctl enable vibeshell-gateway
상태sudo systemctl status vibeshell-gateway
재시작 (설정 바꾼 뒤)sudo systemctl restart vibeshell-gateway
로그sudo journalctl -u vibeshell-gateway -f
중지sudo systemctl stop vibeshell-gateway

안 될 때 보는 여섯 가지

증상원인확인
시작이 안 됨설정 파일이 없거나 포트가 이미 쓰이는 중ls /etc/vibeshell-gateway/gateway.yaml, lsof -i :8022. 쓰는 프로세스를 끄거나 server.listen 을 바꿉니다
Tailscale 인증에서 멈춤auth_key 가 비어 있고 로그에 login.tailscale.com URL 만 찍힘그 URL 을 브라우저에서 열어 기기를 승인합니다. 꼬였으면 state_dir 을 지우고 재시작
앱에서 Connection refused뒤에 있는 SSH 서버가 꺼져 있음서버에서 ssh user@localhost 가 되는지 먼저. Ubuntu 는 systemctl status ssh
tailnet 에 안 보임방화벽이 WireGuard 를 막음UDP 41641 과 HTTPS 443 아웃바운드가 열려 있어야 합니다
비밀번호나 키 인증 실패게이트웨이가 아니라 SSH 서버 문제ssh user@localhost 로 재현. ~/.ssh 700, 키 600, authorized_keys 644
failed to parse configYAML 문법탭과 스페이스 섞임, 콜론 뒤 공백 누락, 따옴표 누락. python3 -c "import yaml; yaml.safe_load(open('/etc/vibeshell-gateway/gateway.yaml'))"