Coreserverのssh登録を自動化する -その2-
前回からの続きです。今回は公開鍵でパスワード入力の手間を省きます。
前回、便利スクリプトのおかげで簡単にホスト登録ができるようになった。Coreserverのホスト登録が反映されればターミナルからsshで接続できるようになる。例えばs0.coreserver.jpにユーザ名exampleで接続するには、ターミナルから
ssh example@s0.coreserver.jpと入力してリターン。パスワードを求められるので入力すればログイン、という流れ。パスワードを毎回入力するのは面倒なので、公開鍵を作ってパスワード入力の手間を省きます。
[Mac上での作業]
まずは鍵のペアを作成する。ターミナルから
ssh-keygenを実行。
Enter file in which to save the key (/Users/[ユーザ名]/.ssh/id_rsa):と聞かれるがそのままリターン。次にパスワードを聞かれるので任意で入力。パスワードを付けないなら何も入力せずにリターン。
これで/Users/[ユーザ名]/.ssh/に
id_rsa
id_rsa.pub
という2つのファイルができる。
[Coreserverでの作業]
この作業はFTPクライアントからでもいいし、ターミナルからsshで作業してもいい。
・FTPクライアントでの手順
自分のアカウントでCoreserverにログインしたらルート階層に.sshフォルダを作成する。そのフォルダの中に「authorized_keys」というファイルを作成し、Mac上で作成したid_rsa.pubの中身をコピペする。authorized_keysファイルの最後の行に空の改行を1行入れておくのを忘れないように。Coreserverでの作業はこれだけ。
・ターミナルを使用する手順
sshで接続したら、
mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keysここで.sshディレクトリにMac上で作成したid_rsa.pubを転送しておいて、
cat id_dsa.pub >> authorized_keysとすることでauthorized_keysにid_dsa.pubの内容を追加できる。Coreserverでの作業はこれだけ。
mvコマンドでid_dsa.pubをauthorized_keysにリネームしてもいいんだけど、複数の鍵をauthorized_keysに追加したいときはcatコマンドの方がいいのかなーと思ってます。
これにて公開鍵の設定は完了。今後Coreserverにssh接続する時は
ssh example@s0.coreserver.jpとするだけでパスワードの入力無しで接続できるようになった。
僕は.bash_profileに
alias sc='ssh example@s0.coreserver.jp'を登録しているのでターミナルからscって入力するだけでssh接続できるようになってます。
ちょっと便利。
これでCoreserverへの自動登録と簡単ssh接続が実現できた。あとはCronで定期的にスクリプトを実行して常に登録状態にしておくとかすれば便利なのかも知れないけど、それってマナー的にどうなんでしょうか。例えば10分毎に登録しに行くとして、1時間に6回、1日144回登録しに行ってしまうわけね。
理想としては自分のホスト名が変更された事をトリガーとしてPHPスクリプトを実行させたい。それなら必要最低限の登録ですむからね。
というわけで次回、ホスト情報変更の取得によるPHP実行に続く・・・かも知れない。