MacのSSH認証キーの落とし穴 | アドカレ2013 : SP #2

2013.12.02

さて、このアドペンとカレンダーに初めて参戦する大村です。
初日から平井くんがガッツリアプリを作ってボリューミーになっていますが、今回は少しおとなしく、以前はまってしまったmacのSSHキーでの落とし穴の件でも話したいと思います。

まずはおさらいから

Macでの開発をしていると、複数のSSHホストに対して接続することは多々ありますね。
そうした時、複数の鍵を生成して鍵を分けることとかあると思うんですけど、その場合は、~/.ssh/configファイルを書き換えるっていうのは定説のはず。
その場合は、以下の様な形で記述することになります。

# github account git.xxxx.jp コメント行は#ではじめる
Host git.xxxx.jp
        HostName        git.xxxx.jp
        Port            10022
        IdentityFile    ~/.ssh/id_rsa.xxxx.jp.t_omura
        User            t_omura

Host yyyy.info
        HostName        yyyy.info
        Port            7999
        IdentityFile   ~/.ssh/id_rsa
        User            omura.takatoshi

#トンネルを掘る場合はこうやって設定する
Host 111.111.111.111
        ProxyCommand ssh ohmura_takatoshi@000.000.000.000 nc -w 10 111.111.111.111
        Host            000.000.000.000
        User            ohmura_takatoshi
        IdentityFile   ~/.ssh/id_rsa
        Port            22

あくまで一例です。
Hostから次のHostが出てくるまでが一つのセッションとなり、ポート番号や鍵ファイル設定などを記述できます。
これで、次のSSHアクセスする時は

ssh yyyy.info

の形でアクセスすれば良くなるので楽です。

落とし穴は接続するときに

この設定はしたのですが、接続するときに以下の文章が出てうまく行きません。

Permission denied (publickey).

パーミッションの設定がおかしいと出ます。
ちなみにこのファイル、

ssh-keygen -t rsa

というコマンドで出力しただけのシンプルなものでした。
パーミッション関係で色々調べると、とりあえずパーミッションを600にしろって言われたので、そのとおりにします。

chmod 600  ~/.ssh/id_rsa

これでもまだうまく行きません。
で、色々と調べてみたら、最後にこれをしなければならないというところにたどり着きました。

ssh-add ~/.ssh/id_rsa

複数のssh keyを作った場合、これで登録を行わないと使えないみたいです。
盲点でした。前に、別のプロジェクトで公開鍵を作っていたのが原因でした。

といったところで、2日目となります今回は、ちょっとしたMacでスマホアプリを作るときの落とし穴というか半日かかったトラブルについてのお話でした。