sshdが起動しない

AWS EC2において表題の件に陥った。

■ 環境

  • AWS EC2
  • Amazon Linux

■ 接続できない

「SSHで接続できなくなった」

と相談を受けた。話を聞いてみると「/var を全て削除した」という事をやったらしい。状況がおかしいのでManagementConsoleからインスタンスを再起動してみたりもした。とのこと。

該当のインスタンスを停止し、EBSをデタッチ。別途復旧用のインスタンスを起動し、デタッチしたEBSを復旧用のインスタンスにアタッチ。復旧用インスタンスにSSHでアクセスし、アタッチしたEBSを`mount`する。そして中を確認した。

ログファイル等を見ているとsshdが起動した形跡がない。”/var/log/secure“が空っぽのままであったので”/etc/init.d/sshd“にログを仕込む。先ほどの手順を逆に行い、該当のインスタンスを起動してみるも、やはり`ssh`での接続はできなかった。

再度復旧用のインスタンスでEBSを`mount`して仕込んだログを見ると下記のメッセージが出力されていた。

failed to run commands: exit status 255
Missing privilege separation directory: /var/empty/sshd

とりあえず該当のディレクトリを作成し、再度インスタンスを起動したところ`ssh`での接続ができるようになった。

念のため、”openssh-server“を入れ直すことにしたのだが、”/var“を削除したことによって`yum`のデータベースも削除されてしまったのだろうエラーとなる。ので見た目だけではあるがインストールした。

$ sudo yum install openssh-server

他にもエラーが残っている気がするが、とりあえずの復旧としては終了。

以上。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA