RightScale製のインスタンスを鍵指定無し(AMIの中に公開鍵仕込んでたので必要なかった)で立ち上げてsshしたんだけど
ssh: connect to host 1.2.3.4 port 22: Connection refused
こんな事を言われて入れなかった。
瞬間言われるので多分ネットワークは生きてる。おそらくポート22をListenしているプロセスがいない…?
で、AWS管理画面からシステムログを確認してみると
Fetching list of trusted keys from metadata server...
このログを最後に止まってる。追ってみたらこのログはどうやらgetsshkey(ライトスケールが用意してくれた、インスタンス立ち上げの時に指定した鍵を自動で取得するスクリプト)が出しているようだった。
おそらくこのスクリプトで止まっていてsshd起動までの処理に辿りつけて無い。
という事で、どうもこのスクリプトがいけてなさそう(鍵指定が無いと止まってしまう?)で、このスクリプトを修正するのもなんだかなぁと思ったので、今までやっていた「/etc/rc.local」にスクリプト書いて鍵を取得する方法でやる事にしてみた。
getsshkeyをサービスから外す
chkconfig --del getsshkey
/etc/rc.localを下記記事を参考に編集。
http://blog.suz-lab.com/2011/05/suz-lab-centos-ami-562-32bit-ap.html
PUB_KEY_URI=http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key PUB_KEY_FROM_HTTP=/tmp/openssh_id.pub ROOT_AUTHORIZED_KEYS=/root/.ssh/authorized_keys curl --retry 3 --retry-delay 0 --silent --fail -o $PUB_KEY_FROM_HTTP $PUB_KEY_URI if [ $? -eq 0 -a -e $PUB_KEY_FROM_HTTP ] ; then if ! grep -q -f $PUB_KEY_FROM_HTTP $ROOT_AUTHORIZED_KEYS then cat $PUB_KEY_FROM_HTTP >> $ROOT_AUTHORIZED_KEYS echo "New key added to authrozied keys file from parameters" | logger -t "aws" dd if=/dev/urandom count=50 | md5sum | passwd --stdin root echo "The root password randomized" | logger -t "aws" fi chmod 600 $ROOT_AUTHORIZED_KEYS rm -f $PUB_KEY_FROM_HTTP fi
これで行けるようになった。