# Show GN: alogin – TUI, 멀티홉 게이트웨이, 암호화 저장소를 갖춘 SSH 접속 관리 도구 (Go)

> Clean Markdown view of GeekNews topic #27716. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27716](https://news.hada.io/topic?id=27716)
- GeekNews Markdown: [https://news.hada.io/topic/27716.md](https://news.hada.io/topic/27716.md)
- Type: show
- Author: [emusal](https://news.hada.io/@emusal)
- Published: 2026-03-22T06:35:23+09:00
- Updated: 2026-03-22T06:35:23+09:00
- Original source: [github.com/emusal](https://github.com/emusal/alogin2)
- Points: 4
- Comments: 4

## Topic Body

2000년대 초부터 개인용 SSH 자동화 도구를 Bash + Expect 스크립트로 만들어 써왔습니다.  
20년간 패치하다가 결국 Go로 완전히 재작성해서 오픈소스로 공개했습니다.  
  
https://github.com/emusal/alogin2  
  
핵심 문제 의식: 수십 대 서버를 사용자, 포트, 게이트웨이 경로, 자격증명이   
제각각인 상태로 관리할 때 — 호스트명을 매번 전부 타이핑하거나 비밀번호를   
평문으로 저장하지 않고 편하게 쓰고 싶었습니다.  
  
주요 기능:  
  
- TUI (Bubbletea) 퍼지 검색 — 호스트명 전부 안 쳐도 됩니다  
- Go 네이티브 SSH로 멀티홉 게이트웨이 구현 (ProxyCommand 없음, expect 없음).  
  중간 홉에서 AllowTcpForwarding이 꺼져 있으면 셸 체이닝으로 자동 폴백  
- 암호화 자격증명 저장 — 비밀번호는 macOS Keychain / Linux Secret Service /  
  age 암호화 파일에 보관. SQLite DB에는 절대 기록되지 않음  
- 클러스터 세션 — tmux, iTerm2, Terminal.app으로 N대 서버에 동시 접속  
- Web UI — WebSocket 기반 xterm.js 터미널 + 서버 관리 대시보드 (alogin web)  
- 셸 심(shim) — 기존 스크립트의 t, r, s, f, m 명령어를 한 줄 source로 그대로 사용 가능  
  
사용 스택: Go 1.23, Bubbletea, golang.org/x/crypto/ssh, chi, xterm.js (React)  
  
구현 중 가장 흥미로웠던 부분은 멀티홉 SSH였습니다.  
golang.org/x/crypto/ssh는 기존 세션 위에서 다음 홉을 dial할 수 있어서  
별도 프로세스 없이 N홉 체이닝이 가능합니다. 까다로웠던 건 중간 배스천이  
TCP 포워딩을 막고 있을 때 — dial 도중 실패를 감지하고 셸 체이닝 방식으로  
전환하는 폴백 로직이었습니다.  
  
구현 관련 질문이나 피드백 환영합니다.

## Comments



### Comment 53552

- Author: nokdu
- Created: 2026-03-22T15:57:12+09:00
- Points: 1

윈도우 지원은 안되나요? ㅜㅜ

### Comment 53558

- Author: emusal
- Created: 2026-03-22T17:15:08+09:00
- Points: 1
- Parent comment: 53552
- Depth: 1

Windows 환경이 없어서 못 해봤습니다

### Comment 53528

- Author: runableapp
- Created: 2026-03-22T06:42:54+09:00
- Points: 1

사용 스크린샷이 있으면 좋겠습니다.

### Comment 53559

- Author: emusal
- Created: 2026-03-22T17:15:38+09:00
- Points: 1
- Parent comment: 53528
- Depth: 1

README에 스크린샷 추가했습니다. 조언 감사합니다.
