AWS

【解決済み】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できた!!助かった。

こんな感じでした。


コメントを残す

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">