kakueki61's dev history

備忘録的に記録を残しています

Amazon EC2 + Jenkins + bazaarでAndroidアプリを自動ビルド~②起動したEC2インスタンスにログイン~

Management ConsoleでInstancesを選択すると、インスタンスの一覧が表示される。
ここでインスタンスを選択するとその詳細情報が下に表示されます。

上方のInstance ActionsのプルダウンからConnectを選択すると、インスタンスSSH接続するためのガイドが現れます。
"Connect with a standalone SSH Client"のExampleというところにsshのコマンドラインが出てるので、これをコピペして実行すればインスタンスSSHログインすることができます。
ただし、Ubuntu AMIの場合、"ubuntu"ユーザーで再ログインするように求められました。

また、おそらくデフォルトのSecurity Groupの設定だとSSH接続の22番ポートが開いていないようなので、この設定を行う必要があります。

f:id:kakueki61:20120806033256p:plain

Management Consoleの左方からSecurity Groupを選択します。
それからInboundタブを選択し、"Create a new rule"のプルダウンからSSHを選択します。
この状態で"Source"には0.0.0.0/0が設定されています。ひとまずこの値のまま、"Add Rule"を押すと右側の一覧に"22 (SSH)"という項目が追加されます。
これで問題なければ"Apply Rule Changes"で変更を環境に反映させます。
f:id:kakueki61:20120813130840p:plain

インスタンス一覧画面に戻り、SSHログインしたいインスタンスを選択肢、"Instance Actions"のプルダウンから"Connect"を選択します。
さらに出てきたポップアップから"Connect with a standalone SSH Client"を選択すると、SSHログイン用コマンドの例が表示されるので、
これをコピペして実行すればログインすることができます。
失敗する場合には鍵の指定が間違ってるとか、セキュリティグループの設定でアクセス元に制限かけたりしてるとか確認してみて下さい。

ちなみに私がUbuntu(12.04 LTS)インスタンスの場合、rootユーザーでログインするコマンド例が表示されますが、これでそのまま試すと
"ubuntu"ユーザーでログインするよう求められました。

こんな感じでひとまずログインできましたが、SSHサーバには、設定値が適切でないために発生するセキュリティリスクがあります。
Ubuntu(12.04 LTS)インスタンスの/etc/ssh/sshd_configを見てみると、
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
となっているので鍵認証のみが行われるはずだが、念のためIPによるアクセス制限もかけておきたい。

それについてはまた別の記事に書いておきたいと思います。