ミーティング中に、話を聞きながら「今どうなっているんだっけ」と思う瞬間があります。
以前は我慢して、終わってからPCを開いて確認していました。
最近は少し違います。
スマホから自分のサーバに入り、tmuxのセッションを眺め、gitの差分を確認する。
それだけで、状況の解像度が一段上がりました。
1. やっていることの全体像
構成はとても地味です。
- スマホとサーバを Tailscale でつなぐ
- その上で SSH 接続する
- tmux のセッションに入る
- git の状態や差分を見る
派手なUIはありません。
ブラウザも使いません。
「遠隔地にある自分の端末を、覗いている」感覚に近いです。
1.1. Tailscaleという前提
Tailscaleは、端末同士を安全につなぐための仕組みです。
VPNと呼ばれることが多いですが、私の感覚では「自分専用の閉じたLAN」を作る道具です。
ポイントは次の2つです。
- サーバをインターネットに公開しなくていい
- スマホとサーバが、同じネットワークにいるように見える
これによって、外出先からでも
「自宅でLANに繋いでいる」のとほぼ同じ感覚で作業できます。
1.2. SSHで中に入る
Tailscaleでつながった内部IPに対して、SSHでログインします。
SSHは、暗号化されたリモートログインの仕組みです。
ターミナル操作がそのまま遠隔で行えます。
ここで大事だと感じているのは、操作対象は常にサーバ側という点です。
スマホにはコードもリポジトリもありません。
ただ画面を見て、キー入力を送っているだけです。
1.3. tmuxで「作業の置き場」を作る
tmuxは、1つのSSH接続の中で複数の仮想端末を管理するツールです。
この環境では、tmuxがかなり効いています。
- セッションを常時立ち上げておける
- 接続が切れても状態が残る
- スマホでも「途中から入れる」
2. codexとgitを使う
この環境は「作業」ではなく「状況把握」と「指示」のためのものです。
スマホからコードを書くことは、ほとんどありません。
やるのは次のようなことです。
- git status で変更の有無を見る
- git diff で差分を眺める
- どこが動いていそうかを把握する
3. セキュリティ的にどうなのか
最初は少し不安でした。
スマホからサーバに入る。
字面だけ見ると危なそうです。
ただ、構造を整理すると落ち着きました。
- サーバは公開されていない
- Tailscaleで閉じたネットワーク
- その中でSSH
- 鍵認証
もちろん、端末ロックや鍵管理は前提条件です。が、むしろ、ブラウザ管理画面を公開するより、ずっと保守的だと感じています。