Linux の motd (message of the day) を使って、 ssh した直後に標準出力するメッセージをカスタマイズ出来る。
motd では、任意のファイルを実行することが可能なので、シェルスクリプトで書いたり Ruby で書いたり(多分バイナリでもOK)することが可能だ。
SSH したサーバが何の目的のサーバなのか表示させたり、現在デプロイされてるバージョンを表示させたり、ネットワーク上から取得した情報を表示させたり、等何でもすることも出来る。
ディストロによって方法は異なるようだが、例えば Ubuntu20 では、 /etc/update-motd.d/
以下に置いてあるファイルがファイル名順に実行される。デフォルトが 10-~
, 50-~
のようなファイル名なので、先頭の数字を調整すれば簡単に表示順序を変えられる。実行権限がないファイルは無視されるので、不要なメッセージは削除せずとも実行権限を外すだけで表示されなく出来る。
例
例えば、/etc/update-motd.d/00-header
などのファイル名で下記を置く。
#! /bin/bash
echo "=============================="
echo "Elixir Social checklist server"
echo "==============================\n"
ipv4=$(curl http://169.254.169.254/latest/meta-data/public-ipv4)
echo "Public IPv4: $ipv4\n\n"
AWS ならば、 meta-data
や aws-cli
で ec2 describe-instance
などと組み合わせて工夫すれば、サーバ台数が増えてきたときでも確認の手間などを減らしたり出来る。
注意点は、ssh のたびに実行されるので、重い処理を入れると ssh ログインが遅くなってストレスになるところだろうか。