제 생각인데 AI당 분들은 ssh 많이 안쓰실 것 같습니다. 그래서 맥당에 소개를 할까, 서버당에 소개를 할까, 리눅스당에 소개를 할까 고민하다가 그냥 여기가 제 본진이니깐 여기 [잡담]으로 올리는게 맞는 것 같아 올려봅니다.
평소 tabby terminal이라고 깔끔한 터미널앱을 사용 중이었는데 거기 프리셋 기능이 굉장히 좋습니다(개인적으로요) 근데 이게 electron이라 무겁기도 하고 윈도우에서 파워쉘을 로딩하면 글자나 화면이 깨지거나 하는 경우도 많고 그래서 맥에서 iterm2를 주로 쓰고 있습니다. iterm2도 조금 무겁지만 이만한 터미널이 없다는 생각이에요.
홈랩(이라고 부르고 고물 컴퓨터에 리눅스 설치해서 selfhost 서비스들은 혼자서 사용)을 운영 중인데 자주는 아니지만 종종 ssh로 원격접속해서 작업해야할 일들이 많습니다. tabby를 쓰면 편한데 iterm2랑 같이 돌리려니 뭔가 좋은 체험은 아니더라구요. 그래서 그냥 ssh config을 프리셋처럼 만들어 두고 alias를 cat~/.ssh/config로 매번 봐가서 서버들에 접속하는데 alias가 늘어나니 버겁고 외우는건 더 힘들어서 가볍게 rust tui로 만들어 봤습니다.
어떻게 돌아가나
설치 후 sshc 명령어를 터미널에서 입력하면 쉘 프롬프트 아래에 호스트 picker가 뜹니다(fzf랑 비슷해요) 슬래시( / ) 커맨드로 호스트를 검색하거나 j,k,아래위 방향키로 선택해서 엔터를 누르면 ssh 접속합니다. 그냥 그게 다입니다.
$ sshc
┌─ Hosts ──────────────────────────────┐
│ > n100-ubuntu d9ng@192.168.1.121 │
│ prox-ubuntu d9ng@192.168.1.90 │
│ oci-a ubuntu@152.67... │
│ ... │
└──────────────────────────────────────┘
기존 ~/.ssh/config 을 그대로 읽기 때문에 별도의 설정이 필요하거나 하진 않습니다(평소 config 안쓰시는 분들은 sshc -m(매니저모드)로 들어가셔서 a 키로 추가하셔서 사용하시면 됩니다)
부가기능
개인용으로 만들다 보니 몇가지 잔잔한 기능을 더 붙혀보았습니다.
자주 쓰는 호스트는 f로 즐겨찾기 (최상단으로 자동 올라옴)
최근 접속한 호스트도 위로 올라옴 (즐겨찾기가 ㅁ먼저입니다)
태그 (# @tags: prod, db) 붙여서 @prod로 필터링
관리 모드(sshc -m)에서 호스트 추가/수정/삭제
다만 사용자가 직접 작성한 ~/.ssh/config은 안 건드립니다. 추가한 호스트는 별도 파일에 쓰고 Include 한 줄만 (그것도 물어보고) 추가합니다.
https://github.com/hang-in/sshc
이슈는 가능하면 24시간 이내에 확인하려고 노력중입니다. 만괂부!