【解決済み】EC2のインスタンスにSSHできなくなった場合

  • 最新の投稿
    2015.08.13
    【解決済み】EC2のインスタンスにSSHできなくなった場合

    EC2にSSHできなくなって非常に焦りました。

    ssh_exchange_identification: read: Connection reset by peer

    「う・・・。」

    思い当たるフシはありました。

    最近、/varディレクトリ下のパーミッションを誤って大胆にいじってしまい、色々なサービスの起動に支障をきたしていたので、おそらく/var/runあたりのPIDファイルのパーミッションが間違っているとかそんな理由だろう、、

    と、かれこれ悩みつつも2時間くらいで復旧できたので、そでの手順をメモしておきます。

    1)まず問題のEC2のボリュームのスナップショットを取ります。

    2)次にスナップショットから新しいボリュームを作成。

    3)別のEC2を立ち上げ、2)で作ったボリュームをアタッチします。

    lsblkコマンドでデバイス名を確認する。下の/dev/xvdf1のデバイスがアタッチされているものの、まだマウントされていないのが分かる。

    [root@ip-172-31-19-187 ~]# lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda 202:0 0 8G 0 disk
    └─xvda1 202:1 0 8G 0 part /
    xvdf 202:80 0 10G 0 disk
    └─xvdf1 202:81 0 10G 0 part

    4)マウント先のディレクトリを作ってそこにマウント。

    [root@ip-172-31-19-187 ~]# mkdir /mnt/temp
    [root@ip-172-31-19-187 ~]# mount /dev/xvdf1 /mnt/temp/

    5)ログを見てSSHできない原因を調べて、問題箇所を直す。

    [root@ip-172-31-19-187 temp]# tail /mnt/temp/var/log/messages
    Aug 13 20:43:56 ip-172-31-5-99 sshd[11480]: fatal: /var/empty/sshd must be owned by root and not group or world-writable.

    なるほどね。/var/emptyの所有者がnginxとかおかしなことになってました。

    正しい所有者はrootのようなのでchownで修正。

    6)直したデバイスをアンマウント、EC2を停めてからボリュームをデタッチ。

    7)元のEC2に直したボリュームをアタッチして起動。

    8)SSHできた!!助かった。

    こんな感じでした。