SSH 設定の管理ツールを作ってみた


SSH はコンピュータネットワークのなかで,ひとつのコンピュータから別のコンピュータにログインするための仕掛けです.

SSH を利用すれば,デスクの PC から,自宅の PC から,個人的に利用しているサーバに,職場のサーバに,そして国内最速のスーパーコンピュータにアクセスすることができます.最近はスマートフォンでも SSH が利用できるので,電話一本,いただければ,職場の携帯を片手に職場のサーバ群を停止させることができます.輪番停電のスケジュールで混乱したときに,どこにいてもすぐに職場のサーバ群を停止できるように iPhone を設定しておいたのです.そんな非常時でなくても,これなしには生きていくことはできません.

でも,この設定がかなり面倒.難しくはないのだけれども,面倒.現在,主に利用しているサーバは 8 つ,クライアントは iPhone と iPad を含めれば 8 つ.任意のクライアントから任意のサーバへ,そしてサーバ同士の間でもログインしたい.でも,この設定を手作業ですべてのサーバに施すのはちょっと面倒.

と,長年,思っていました.こういうツールは二十世紀のうちに作成すべきでしたけれども,遅ればせながら,ようやく作成しました.

– 中心的なサーバをひとつ選び,そこに自分のすべての SSH 公開鍵を集めます.
— クライアントについては $HOME/.ssh/keys/PC-X.pub という感じに保存します.
— サーバについては $HOME/.ssh/keys/name:login@address.pub という感じに保存します.
– スクリプトを実行するだけで,以下をします.
++ 中心的なサーバの authorized_keys にすべての公開鍵を収集
++ 各サーバにアクセスするための情報を $HOME/.ssh/config に設定
++ 各サーバに authorized_keys を配布

これで,SSH の設定が一気に簡単になりました.

Python スクリプト,欲しいひといますか?