パスワードなしでSSHログイン出来るようにする
何度やってもすぐ忘れるのでメモしておく。
やらなきゃいけないこと
- 接続元(上記図ではサーバA、またはB)のサーバで公開鍵、秘密鍵を作る
- 接続元のサーバにkeychainというプログラムを入れる
- 接続もとの.bash_profileにちょこっと設定追加
- 接続先(上記図ではサーバC)にauthorized_keysに接続もとの公開鍵を記入する
こんだけ。
設定詳細
まず、「接続元」の方から設定していく。
公開鍵、秘密鍵の作成
$ ssh-keygen -t rsa
ここで、パスフレーズを入力する。後で必要になるので覚えておく。パスフレーズを入力したら、~/.sshディレクトリができその中に、「id_rsa(秘密鍵), id_rsa.pub(公開鍵)」というファイルが出来る。
keychainをインストール。
$ wget http://agriffis.n01se.net/keychain/keychain-2.6.8-1.noarch.rpm # rpm -ivh keychain-2.6.8-1.noarch.rpm
.bash_profile編集
~/.bash_profileの最後に以下の内容を追加
keychain ~/.ssh/id_rsa . ~/.keychain/$HOSTNAME-sh
1行目で作成した秘密鍵の場所を教えてやってる。(因みにssh-keyge -t dsaとやったら、秘密鍵は~/.ssh/id_dsaとなるのでここに設定する内容を合わせておく必要がある)
保存できたら、別の端末を上げログインしてみる。するとパスフレーズを聞いてくるので、先ほどssh-keygenを実行したとき入力したパスフレーズを入力する。これで、OSを再起動するまで、このパスフレーズは記憶される。
LinuxサーバAとBにこの設定をしておく。
次に、「接続先」のサーバの設定
authorized_keysに接続もとの公開鍵を記入
~/.ssh/authorized_keysというファイルやディレクトリが無ければ新たに作成する。
$ mkdir ~/.ssh $ touch ~/.ssh/authorized_keys $ chmod 644 ~/.ssh/authorized_keys
ここで、authorized_keysのパーミッションは「644」にしておかないとダメなので気をつける。
次に作成したauthorized_keysを編集。接続元サーバA,Bで作成した「id_rsa.pub」の中身をauthorized_keysにコピーしてくる。因みに、id_rsa.pubの内容は1行で記述されているものなので注意する。つまり、LinuxサーバA、Bの2台の設定を追加したときauthorized_keysは2行で書かれているはずである。
以上で設定は終わり。
最後に、接続元から接続先へSSHで接続してみる。パスワードの入力を求められずにログインできれば成功!
cronでシェルを実行するとき(シェルの中でscpとか使ってるとき)
シェルの先頭に以下の行を追加しておく。(確か)
. ~/.keychain/$HOSTNAME-sh
追記
図に描いてるIPが変だったので修正。しかし、IPなんて必要なかった・・。
村上春樹の「1Q84」が出たので買ってみた
村上春樹と言う人の小説はすごいすき。結構好き嫌い分かれるみたいだよね(うちの嫁さんは読めんといってるし)みんなはどうかね??
また、この本、発売前からすごい売れてるみたいだね。すご。
http://www.sanspo.com/shakai/news/090526/sha0905261358010-n1.htm
予断を持たずに読んでほしい
ということで、どんな内容なのかはどこにもかかれていない。
予断とは、、、
なりゆき・結果を前もって判断すること。予測。(gooの辞書より)
だって、だから、ただ無心で読むべし。って村上春樹氏の小説ってあれこれ考えながら読めないよね。