--- tags: [infra, workflow, 51123, remote-operations, workspace, ssh] --- # 51123 Remote Workspace Operations Workflow ## 상위 원칙 - [../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md](../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) - [../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md](../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) - [../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md](../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) ## 관련 문서 - [../journey/research/260309_24서버_실서비스운영전환_리서치.md](../journey/research/260309_24서버_실서비스운영전환_리서치.md) - [../journey/troubleshooting/260226_51123_SSH_브루트포스_차단_및_fail2ban_교정.md](../journey/troubleshooting/260226_51123_SSH_브루트포스_차단_및_fail2ban_교정.md) - [../journey/troubleshooting/251014_skill-rag-file_sshfs_allow_other_해결.md](../journey/troubleshooting/251014_skill-rag-file_sshfs_allow_other_해결.md) ## 목적 - 24 서버에서 23 서버의 원격 작업을 시작할 때 같은 SSH 기준과 검증 순서를 사용합니다. - 사람과 에이전트가 23 서버 접속 포트 혼선을 반복하지 않도록 단일 workflow로 고정합니다. ## 적용 범위 - 23 서버 SSH 접속 기준 확인 - 23 서버 기본 식별 확인 - 23 서버 원격 작업 시작 전 사전 점검 - 23 서버 접속 실패 시 중단 기준 ## 기본 원칙 - 23 서버 SSH 포트는 `22`로 가정하지 않습니다. - 23 서버 SSH 기준은 문서 근거상 `192.168.0.100:51123`입니다. - 포트 근거는 `DEPLOY_SSH_PORT=51123` 문서와 `sshfs ... -p 51123` 운영 기록에 있습니다. - 이 워크스페이스에서는 fail2ban 리스크 때문에 23 서버 SSH/포트 확인을 반복하지 않습니다. - 접속 실패가 나면 임의 포트 재시도보다 SSOT와 workflow를 먼저 다시 확인합니다. ## 표준 흐름 ### 1. 24 서버 기준값 확인 먼저 현재 제어면이 24 서버인지 확인합니다. ```bash hostname grep -n '^HOST_51123=' /home/admin/workspace-config/runtime.env ls -l /home/admin/.ssh/id_rsa_51123 ``` 판단 기준: - 현재 작업 서버는 24 서버다. - `HOST_51123=192.168.0.100` - `/home/admin/.ssh/id_rsa_51123` 키 파일이 존재한다. ### 2. 23 서버 SSH 기준 확인 문서와 로컬 키 기준을 같이 확인합니다. ```bash rg -n 'DEPLOY_SSH_HOST=|DEPLOY_SSH_PORT=' /home/admin/infra/DOCS /home/admin/robeing --glob '!**/.git/**' rg -n 'sshfs .* -p 51123|Port 51123' /home/admin/infra/DOCS /home/admin/robeing --glob '!**/.git/**' ``` 판단 기준: - `DEPLOY_SSH_HOST=192.168.0.100` - `DEPLOY_SSH_PORT=51123` - fail2ban 교정 문서에 `Port 51123`이 명시돼 있다. ### 3. 23 서버 접속 23 서버 접속 명령은 아래를 기준으로 사용합니다. ```bash ssh -p 51123 -i /home/admin/.ssh/id_rsa_51123 admin@192.168.0.100 ``` 원격 접속 직후 확인: ```bash hostname whoami pwd ``` 판단 기준: - `whoami=admin` - `hostname=robeing-brains` - 홈 경로 기준 `/home/admin` 사용 가능 ### 4. 빠른 원격 식별 확인 대화형 셸이 필요 없으면 한 줄 점검으로 끝냅니다. ```bash ssh -p 51123 -i /home/admin/.ssh/id_rsa_51123 admin@192.168.0.100 'hostname && whoami' ``` 판단 기준: - 응답이 `robeing-brains` - 응답이 `admin` ### 5. 접속 실패 시 중단 기준 접속 실패가 발생하면 아래 원칙으로 멈춥니다. ```bash echo 'Do not retry with guessed ports.' ``` 판단 기준: - `Connection refused`, `Permission denied`, `Operation timed out` 중 무엇인지 그대로 기록한다. - 같은 세션에서 `22`, `2200`, `2222` 같은 추측 포트를 연속 시도하지 않는다. - 추가 확인은 SSOT 문서, 배포 문서, 운영자 확정값을 먼저 본다. ## 자주 쓰는 작업 패턴 ### 패턴 1. 23 서버 접속 기준만 빠르게 확인 ```bash ssh -p 51123 -i /home/admin/.ssh/id_rsa_51123 admin@192.168.0.100 'hostname && whoami' ``` ### 패턴 2. 문서 근거만 빠르게 재확인 ```bash rg -n 'DEPLOY_SSH_PORT=51123|Port 51123|sshfs .* -p 51123' /home/admin/infra/DOCS /home/admin/robeing --glob '!**/.git/**' ``` ## 변경 후 검증 - workflow 경로가 `infra/DOCS/workflow/`에 있는지 확인합니다. - README 인덱스에 문서가 노출되는지 확인합니다. - 문서 내 경로와 링크가 실제 파일을 가리키는지 확인합니다. ## 금지선 - 23 서버 SSH 포트를 `22`로 기본 가정하지 않습니다. - 접속 실패 뒤 임의 포트 스캔을 하지 않습니다. - 비밀번호나 비밀값을 workflow 문서에 적지 않습니다. - 23 서버 SSH 기준과 24 서버 SSH 기준을 섞어 쓰지 않습니다. ## 기록 원칙 - 반복 접속 기준 정리는 `workflow/` - 실제 접속 실패, fail2ban, 인증 오류는 `journey/troubleshooting/` ## 한 줄 결론 - 23 서버 원격 작업은 `24 기준 확인 -> 23 SSH 기준 확인 -> 51123 포트로 접속 -> 식별 검증 -> 실패 시 추측 재시도 금지` 순서로 고정합니다.