複数の共通鍵管理

こんにちは、今回は以前設定した RSA についてより深くやってみようと思います。


RSA key の作成 - えいちゃダイアリー

ちなみに前回は RSA の導入までを行いました。

さて、今回は複数の人数で1つのサーバーアカウントにログインする際の RSA の設定です。

めちゃくちゃ簡単なのでそれだけじゃなくて、複数のサーバーアカウントにログインする際の RSA の設定も一緒にやっちゃいたいと思います。

複数の人数で1つのサーバーアカウントにログインする際の RSA の設定

まずは前回と同様に RSA を作成します。

$ ssh-keygen -t rsa 

このコマンドでしたね。続きは同じなので前回のログを参照にしてください。

これで

$ ls ~/.ssh   
authorized_keys   id_rsa   id_rsa.pub

この3つが作成されていると思います。

さて、また今回も "id_rsa.pub" をサーバー側にあげます。
といっても、 "id_rsa.pub" の中身をコピーして、サーバー側の "~/.ssh/authorized_keys" に記述を追加するだけです。

これだけで RSA についての作業は終わり。
あとは自由にログインしてみてください。多分 password 認証は免除されるはず。(注意:初回ログインは必要のはずです。)

このときに注意するのは、サーバー側の "~/.ssh/authorized_keys" に記述する際は、

上書きじゃなくて追記です。

ここだけ注意。もし上書きしちゃったら、他の人が RSA 認証されなくなっちゃいますから。

これやってて、"~/.ssh/authorized_keys" が "keys" になってる意味が少し分かった気がします。

間違ってたら恥ずかしいけど。


複数のサーバーアカウントにログインする際の RSA の設定

次は、1人でいくつかのサーバーに RSA を設定してみます。

今回もまずは local で

$ ssh-keygen -t rsa

をするわけなんですが、ここで前回と違うことがあるので注意。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):[注意 ファイル名を記述]
Enter passphrase (empty for no passphrase): [ password ]
Enter same passphrase again: [上と同じ password ]
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
〜〜〜省略〜〜〜
The key's randomart image is:
〜〜〜省略〜〜〜

前回は、「Enter file in which to save the key」の項目は何もせずに[return]でした。
今回は、ここに新たにファイル名を記述してあげてください。

Enter file in which to save the key (~/.ssh/id_rsa): id_rsa_test

みたいな感じで。
そしてまた ls をしてみると

$ ls ~/.ssh
authorized_keys   config   id_rsa   id_rsa.pub   id_rsa_test   id_rsa_test.pub   known_hosts

みたいな感じになってるはずです。
今回作った "id_rsa_test.pub" をログインしたいサーバの "~/.ssh/authorized_keys" にまた追記していってください。

さて、これで準備はオッケー。

では local に戻ってきます。
今現在、 ~/.ssh には "id_rsa" と "id_rsa_test" のプライベートキーがあるはずです。
この状態でサーバーにアクセスしても、どっちのプライベートキーを使ったらいいのか分からない状態になってしまいます。
そこで、アクセスする際にキーを指定してあげましょう。

$ ssh -i ~/.ssh/id_rsa hoge@fuga.com

ssh の i オプションを付けて鍵を指定すると入れるようになります。

でも、これを毎回記述するのは面倒くさい・・・

というわけで、config ファイルを作ります。

local の ~/.ssh の中で

$ vim config

か何かで config ファイルに以下の内容を記述してください。

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_test

のように、使うものは全部記述した方が良い感じ。
記述はプライベートキーだけで良さそうです。

これを行うことで、サーバにあったプライベートキーを検索して勝手にやってくれるそうです。
便利ですね。

これで今回の RSA の設定は終わりです。
ぱっぱとやっちゃったからどこかで間違いありそうだなぁ、なんて思いつつ...
それではまた次回に。

参考ページ
複数の公開鍵を使い分ける - May the Source be with you