diff --git a/ops-agents/overview.md b/ops-agents/overview.md index c9544cf..b5ea3ea 100644 --- a/ops-agents/overview.md +++ b/ops-agents/overview.md @@ -44,7 +44,19 @@ kappa가 혼자 쓰는 **내부 인프라·운영 자동화 Claude Code 에이 - **Syn → Heimdall**: `ssh kaffa@10.100.3.108 'tmux send-keys -t heimdall ...'` - **Heimdall → Syn**: `ssh kaffa@100.106.245.27 '/opt/homebrew/bin/tmux send-keys -t 0:0 ...'` (경유 필요) -Syn 컨테이너는 hp2 subnet routing 덕분에 **Tailscale 설치 없이** tailnet의 다른 노드(kappa Mac 100.106.245.27, heimdall 10.100.3.92 등)에 직접 reachable. 호스트의 tailscale0 interface가 container bridge 로 투명하게 열려있음 — 2026-04-09 실측 확인. +Syn 컨테이너는 hp2 subnet routing 덕분에 **Tailscale 설치 없이** tailnet의 다른 노드(kappa Mac 100.106.245.27, heimdall 10.100.3.108 등)에 직접 reachable. 호스트의 tailscale0 interface가 container bridge 로 투명하게 열려있음 — 2026-04-09 실측 확인. heimdall(kr1)의 incusbr0 역시 동일하게 tailnet 노출됨. + +### SSH identity + +모든 ops 에이전트는 **공유 ed25519 키 "ops-agents@kaffa"** 를 사용 (Vault `secret/apps/ops-agents-ssh` · private_key / public_key). 이 키는: + +- `/home/kaffa/.ssh/id_ed25519` 에 각 컨테이너 cloud-init 시 자동 배치 (tofu `ssh_private_key` 변수 → `base64encode` → tftpl write_files) +- `authorized_keys` 기본값에 포함되어 모든 에이전트가 피어로부터 inbound SSH 허용 +- kappa Mac `~/.ssh/authorized_keys` 에도 추가되어 에이전트 → kappa CC 채널 지원 + +보안 tradeoff: 공유 키라서 1개 에이전트 compromise = 전체 ops-agents compromise. 이미 동일 blast radius (모두 kappa 사설 인프라, 상호 완전 신뢰) 라서 수용. 개별 키 관리 부담(신규 provisioning 마다 수동 pubkey 배포) 대비 운영 단순성이 우선. + +fingerprint: `SHA256:eBCIglGmK/FnDxJLqxT0CJvRGFEGaIKRWnZ3ZpTaugU` ## 역할 분담 원칙