技術評論社から出版されているSoftware Design 2014年6月号 を遅れましたが読みました。 毎度のことながら本の密度は高いなと脱帽します。 書物であればハードウェアからソフトウェアまで幅広く情報が飛び込んできます。 ネットで情報収集をしているとどうしても自分の知っている枠内の情報に偏ってしまいがちで、意識しないといけないです。

前置きはさておき、その中でssh接続で面白い箇所があったので紹介。

Githubのアカウトの公開鍵は以下でpublicアクセス出来ることはご存知でしょうか?

https://github.com/${USER_ID}.keys

この内容をcurlで取得して、そのままリダイレクトしてauthorized_keysに登録すれば簡単にsshの接続を許可することが可能です。 共同プロジェクトなどで他の方と作業されることもあると思いますが、SSHの公開鍵の共有は簡単。 一言、「Githubのアカウトを教えて下さい」これだけでOK。

基本的なことですが、sshの公開鍵(id_rsa.pub)と秘密鍵(id_rsa)のペアは使い回しが可能です。 同じ公開鍵を許可されているサーバには同じ秘密鍵を利用してssh接続すると同様にアクセスが可能です。 その原理を分からず、毎回個別にssh-keygenで鍵を作成していた若かりし頃が私にもありました。 もちろん共有すればするだけセキュリティ強度は落ちますので、そのトレードオフを念頭に入れる必要はあります。

先ほどの雑誌のRettyさんの事例にもありましたが、基本的にsshの公開鍵の許可設定は使い捨てのイメージが良いです。 意外と一度登録されたauthorized_keysは削除したり点検される方は少ないと思います。 そこがセキュリティの穴になるケースが多く、都度新しく刷新してリフレッシュする運用のほうがシンプルで強度も高いです。

さて本題に戻りまして、ハッカソンなど一刻の猶予も争うようなケースの場合は以下のようにコマンドを叩いてサクっとターミナルで登録してみます。 for文でスペースで区切ってアカウントを列挙していきます。

vim sample

余談ですが、zshを利用するとfor文入力も簡単に出来るので便利です。dodoneなどが不要で直感的に入力が可能。

この一連の操作さえ覚えていれば、どんなパソコンでもあっという間に設定可能です。 人の離席した瞬間にパソコンのターミナルから一行叩き込むなどくれぐれもなさらないように!

Software Design (ソフトウェア デザイン) 2014年 06月号 [雑誌]