EC2で使うSSH接続の環境を整える

ec2へターミナルからインスタンスに接続する際にsshを使用しますが、その際の面倒な作業を少しでも省くためにやったことをメモります。要は、-iオプションを毎回付けるのが面倒なので、つけなくてよくしました、って話です。

まずはsshについて

"ssh にてパスワードを使用しないでログインする方法"で説明されています。
自分はdsaを使用しています。概要の後半部分にdsaの場合については記述されています。バージョンによって違いがあるんですね。
sshの鍵方式ってなんだろうって思ったときに、自分は秘密鍵を持っておいて接続先に公開鍵を登録しておいて、接続するときに秘密鍵を使う、と理解しました。なぜそのような事が可能なのかは、公開鍵方式なーんてところをwiki辺で見て下さい。考えた人は頭イイですよね。

ローカルマシンの公開鍵を登録する

インスタンスに接続するたびに-iで秘密鍵を毎回指定するのも面倒であるため、ローカルマシンの公開鍵を登録するようにしてみました。鍵は、ssh-keygen -t rsaで作成しました。パスフレーズを付けるかどうかは個人の判断に任せます。

ec-userのauthorized_keysファイルに追加する

インスタンスに接続して、すでに他のキーが登録済の場合は、後ろに追加します。もともとファイルにあったものを消すと後で痛い目をみること請け合いです。いきなり接続出来なくなって大騒ぎすることになります。

vi ~/.ssh/authorized_keys
<id_rsa.pubファイルの中身>

接続は-iオプションなしで

sshでの接続の際には自動的に~/.ssh/id_dsaファイルが使われるため、オプション無しで接続が可能となります。

ssh ec2-user@<Publick DNS>

一応keypairに登録しておきます

他のインスタンスでも使用できるようにするため、ec2のkeypairとして登録しておきます。登録には、ec2-import-keypairコマンドを使用します。ec2-apiが使える環境で、id_dsa.pubファイルを登録します。

ec2-import-keypair <key_name> --public-key-file <id_dsa.pub path>