小ネタです。
公開鍵を設定するにはssh-copy-id
というコマンドがありますが、複数サーバーに同時には設定できません。
また設定されている公開鍵の削除は出来ません。
これをできるツールを見つけました。
複数サーバーへの公開鍵設定・削除ツール
ssh-copy-id.rb
https://github.com/junegunn/ssh-copy-id.rb
インストール
gem install ssh-copy-id.rb
使い方
複数サーバーで同時に公開鍵を登録
ssh-copy-id.rb -i ~/.ssh/id_rsa.pub vagrant@192.168.33.20 vagrant@192.168.33.30 vagrant@192.168.33.40
複数サーバーで同時に公開鍵を削除
ssh-remove-id.rb -i ~/.ssh/id_rsa.pub vagrant@192.168.33.20 vagrant@192.168.33.30 vagrant@192.168.33.40
ただしこのgemはGithub上で Unmaintained と書いてありますのでこの点は注意してください。
2017/1にコミットがあるので完全に放置ではないと思いますが。
※以下は戯言です。
しかし、もっと融通がきくツールがほしいですね。
入退社やプロジェクトへの参加・離脱とかで、複数人の個人の公開鍵を複数サーバーで管理しなければならない場面ってありそうです。
例えばこんなツールがあれば。。
- 管理用のユーザーでリモートのサーバーにsshログイン
- sudoで特定ユーザーになる
- その特定のユーザーに公開鍵を設定 or 削除
- そのユーザーのauthrized_keyを取得
- 設定・削除の前後のdiffを参照
- これを複数サーバーに同時に実行
とかができればいいのですが。
さらに進めて、鍵も集中管理して
- コードで行うMySQLのアカウント管理
- http://techlife.cookpad.com/entry/2015/04/10/122651
と似たようなことができれば。
少し似たようなところではこんな記事も見つけました。
- ぼくのかんがえたさいきょうの(?)SSH鍵運用管理方法
- http://qiita.com/tasaki-i3/items/b2b8250864cd6819f223