[SSH]秘密鍵の保存場所はどこがいいのか?

Open ssh 2013

Mac OS X の環境を再度セットアップしているところですが、sshで使う秘密鍵の置き場所に困りました。

秘密鍵なんて同じペアを一度作ったら、ログインするいろんなサーバに同じものを配布して1個しか管理するっていうのが普通だと思うんですが、自分の場合自宅サーバー(以前作ったこれです)とかブログ用のレンタルサーバとか、仕事で使う外部からのアクセス用サーバとかとか・・鍵が、結構大量にあるじゃないっすか!? え、ないですか。そうですか。

しかも中には配布用にとりあえず〜とか言っておいておいた公開鍵(pub)的なヤツとかもあって、全部を .sshの直下に置きたくねぇな って思って色々試した話です。

とりあえずサーバ毎に.ssh配下にディレクトリ掘った

基本的に.ssh配下にサーバの名前適当につけたディレクトリ掘って放り込みました。
ちなみに確かsshの秘密鍵は置いてあるディレクトリのパーミッションがちょっとOPEN過ぎると怒られてサーバーに接続できなかった記憶があるので、基本.sshの下意外は置かない方がいいっぽい。

けど、sshのたびに -i オプションをつけて置いた鍵の場所を教えてあげるのが結構めんどくさい。
(一度接続したらしばらくは鍵の場所を記憶してくれた気がするけど、たしかMacをリブートしたか何かのタイミングで忘れられた気がする)
そこで、接続するサーバと秘密鍵のマッピング(というか設定)は .ssh/config で管理するのだそう。

今まではProxyCommandとかエージェントフォワードとかの設定しか使うもんないと思ってたけど、サーバ毎に管理できるっていうの初めて知った。情弱ですんません!
けどこれ、めちゃスッキリするわー

.ssh/configを活用しよう

書き方としては設定したいサーバの名前とか適当に書いて、その下に鍵の場所とかログインユーザ名とか書いてけば良いらしい。
これで 毎回最初にログインする時 -i オプションをつけて鍵の場所を指定しなくてすみますね。

以下サンプルでござる。

ServerAliveInterval 10
ServerAliveCountMax 12
ForwardAgent yes

Host aaa.com
  HostName aaa.com
  IdentityFile ~/.ssh/aaa/aaa.dsa
  User altarf

Host bbb.com
  HostName bbb.com
  IdentityFile ~/.ssh/bbb/id_rsa
  User altarf

Host XXX.XXX.XXX.XXX
  ProxyCommand ssh aaa.com nc -w 60 %h %p

Host zitaku
  HostName zitaku
  IdentityFile ~/.ssh/zitaku/id_rsa
  User altarf

最初の2行はsshの接続が自動できれないように書いておいたやつ。
3行目は先週書いたこれ

ちなみに Host XXXのところで、 ProxyCommand  っていう設定があいりますが、これを書いておくとXXX行く時に aaa.com を一度経由して(踏み台に一度ログインしてから)行ってくれるのでメチャメチャ便利やでしかし。
(このサーバのせっても書くのかなって思ったけど aaa.com の設定をちゃんと引き継いでるっぽい)

以上でござる。

今日は一秒もTOEICの勉強をしなくて自己嫌悪に陥る。
ブログなんか書いてもぉおー



関連記事

Comment





Comment



*