SSH

ssh するときにログイン先環境を区別しやすくする

More than 1 year has passed since last update.

ログイン先を間違えると大惨事になる。
開発環境にログインしたとつもりで、本番のファイルを消してしまった……なんて目も当てられない。

なので、SSH ログインするときはログイン先に注意して ssh xxx-stg-hoge とか ssh xxx-PRODUCTION-hoge とか打つんだけど、それでもまだまだ怖い。

よくある対策として /etc/motd に figlet などで生成したテキストを置いておき、ログイン時にターミナルに表示させるやり方がある。
これは誰がログインしても表示されるので、ベストな方法だと思う。
似たようなやり方で .bashrc に表示コマンドを書くやり方もある。

しかし、諸般の事情(ルートになれないとか共通ユーザー使っているとか)でそれらのファイルを触れない場合の対策として何かないかと探していたところ、~/.ssh/config の LocalCommand を使えば表示できそうだとわかった。

Host xxx-stg-hoge
    HostName           xxx.stage.example.com
    PermitLocalCommand yes
    LocalCommand       printf '\e[1;7;33m         %%s         \e[0m\n' '検証'
Host xxx-PRODUCTION-hoge
    HostName           xxx.example.com
    PermitLocalCommand yes
    LocalCommand       printf '\e[1;7;31m         %%s         \e[0m\n' '本番'

これでログイン時に背景色付きラベル表示で警告がされる。
わかりやすくなった。