Babayetu — SSH 자동화 CLI

Python Paramiko cryptography keyring Windows Integration

문제 반복적인 원격접속(주소/계정/암호/터미널 세팅)이 귀찮고 위험(비번 저장·유출)합니다.

해결 babayetu <alias> 한 줄로 접속, RSA 자동 로그인네이티브 백업/복구로 안전성과 복구력을 동시에 확보했습니다.

🎯 10초 안에 이해되는 데모
$ babayetu register
? Host/IP: 10.0.3.17
? Username: ubuntu
? RSA 자동로그인 설정할까요?  Yes
✓ 공개키/암호문은 설정에, 개인키는 OS Keyring에 안전 저장
✓ 백업 복구용 패스프레이즈 설정 완료

$ babayetu api
[WT 새 탭] ubuntu@10.0.3.17 접속 중...
✓ 키 인증 성공 (비밀번호 입력 없이 로그인)
ctrl+c → 원격에 전달, 종료는 'exit'
          

* 실제 환경에서는 Windows Terminal 새 탭/자동 색상/폰트 적용, 간접 터널링 차단 등 정책이 함께 동작합니다.


내 역할 & 구체 기여

핵심 기능(간단히 보기)

원클릭 접속
babayetu <alias> → 바로 로그인, Ctrl+C 원격 전달
RSA 자동 로그인
공개키/암호문은 설정, 개인키는 OS Keyring 안전 보관
네이티브 백업/복구
자동 백업 데몬, 충돌 시 복구 취소로 안전성 확보
Windows 통합
PATH/Shim, Windows Terminal 새 탭, Tray, Autostart

아키텍처(요약)

CLI(main.py)
 └─ Command Bus(command_bus.py) ─→ Handlers(handlers.py) ─→ Core(core.py)
                               UX/파서         기능실행       SSH/보안/백업/설치
Security
 ├─ RSA 자동로그인(pub+cipher in config, priv in OS Keyring)
 ├─ Windows DPAPI로 설정 암호화
 └─ 복구 Passphrase PBE(scrypt+HMAC) + Backup Format(rsa.v1, OAEP+HKDF XOR)
Platform
 └─ Windows Terminal 연동, PATH/Shim, Tray/Autostart, 프록시/간접터널 차단
      

사용 예

# 1) 서버 등록(대화식)
babayetu register

# 2) 접속 (첫 토큰이 별칭이면 connect로 간주)
babayetu prod-app

# 3) 안전한 백업/복구
babayetu backup
babayetu restore   # 충돌 발견 시 보수적으로 취소

# 4) Windows 통합(선택)
babayetu install
babayetu path-prioritize
babayetu tray
      
메인으로

* 이 페이지는 업로드된 섹션을 전체 HTML로 보강해 public/ 에 바로 배치 가능하게 정리했습니다.