WordPressにSiteGuardを導入したら、ログイン認証画像が出ない不具合で管理者なのに締め出された話

先日WordPressに [<strong>SiteGuard WP Plugin Page</strong>](https://ja.wordpress.org/plugins/siteguard/)を導入したのですが、
画像認証をオンにしたままログアウトしたところ、**ログイン画面で認証用の画像が表示されなくなる**という不具合に遭遇したので、自分なりの解決法をまとめました。

Google Cloud Platform(以下GCP)上でWordPressをお使いの方で、同じ境遇に陥った方の助けになればと思います。

&nbsp;

※いくつかのサイトで、「上記不具合が出た場合は一度ログインをわざと失敗し、画面を再描画させれば認証用画像が表示される」と記載されていましたが、私の環境では何度間違えてログイン画面を更新させても、画像は表示されませんでした。

&nbsp;

下記手順にてログインできるようになったので、その詳細を下記に記載します。
[<strong>①GCP上のLinuxサーバに接続</strong>](https://qiita.com/YH0132/items/4c02f3b431a0944d28ec#1gcp%E4%B8%8A%E3%81%AElinux%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AB%E6%8E%A5%E7%B6%9A)
[<strong>②Bashで該当の認証画像を特定</strong>](https://qiita.com/YH0132/items/4c02f3b431a0944d28ec#2-bash%E3%81%A7%E8%A9%B2%E5%BD%93%E3%81%AE%E8%AA%8D%E8%A8%BC%E7%94%A8%E7%94%BB%E5%83%8F%E3%82%92%E7%89%B9%E5%AE%9A)
[<strong>③画像をローカルにダウンロードし、画像を閲覧→ログイン</strong>](https://qiita.com/YH0132/items/4c02f3b431a0944d28ec#3-%E7%94%BB%E5%83%8F%E3%82%92%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%AB%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89)



##1.GCP上のLinuxサーバに接続##
####1.1 不具合の状態の確認####
<font color= Red>※黒太字は操作を表しています。</font>

WordPressの管理者画面にログインしようとすると、下記のようにCAPTHAと書かれている認証画像(「あいうえ」などの文字が書かれている画像)が表示されなくなっています。
<img class="alignnone size-full wp-image-88" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/d8d56bb7-wordpress_画像認証不具合.png" alt="" width="827" height="697" />

&nbsp;

**【原因】**
SiteGuardプラグインが画像を生成した際に、自動生成したハッシュ値の名前をつけるようなのですが、その名付け方が原因でうまく画像を取得できないようです。

**【対処方法】**
ブラウザでうまく取得できないため、直接サーバから画像をダウンロードし、無理矢理画像を閲覧することによりログインできました。

※あくまで緊急的な対応であるため、<font color= Red>管理画面ログイン後は必ずSiteGuardの画像認証をオフにし、</font>必要があれば他の画像認証プラグイン導入をお勧めします。

&nbsp;
####1.2 GCPでBashを起動####
ここから実際の対応になります。
まず、<strong>GCPにログインし、Compute Engine → VMインスタンスを選択</strong>

<img class="alignnone size-full wp-image-57" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/328b1d45-gcp_vmインスタンス.png" alt="" width="603" height="767" />

&nbsp;

&nbsp;

<strong>下記画面に遷移するので、「SSH」をクリック</strong>
これでBashが開きます。

<a href="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/3c52d70a-vmインスタンス_ssh接続.png"><img class="alignnone wp-image-87 size-full" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/3c52d70a-vmインスタンス_ssh接続.png" alt="" width="1228" height="295" /></a>
##2. Bashで該当の認証用画像を特定##
####2.1 認証画像が生成されるフォルダへ移動####
上記1.2で下記のBashが開いたら、下記コマンドで認証用画像が保存されるフォルダへ移動。
<pre><span style="color: #333333;"><strong>cd /home/ユーザ名/apps/wordpress/htdocs/wp-content/plugins/siteguard/really-simple-captcha/tmp/</strong></span></pre>
※下記画像の白抜きは自分のユーザ名です。

<a href="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/63843c33-bash_cdコマンド.png"><img class="alignnone wp-image-52 size-full" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/63843c33-bash_cdコマンド.png" alt="" width="1277" height="53" /></a>

&nbsp;
####2.2 該当ファイルの探索####
<strong>移動後、下記コマンドで該当フォルダ内の画像一覧を更新日付でソートして表示。</strong>
<pre><span style="color: #333333;"><strong>ls -alt</strong></span></pre>
<a href="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/666850a3-bash_lsコマンド.png"><img class="alignnone wp-image-53 size-full" style="font-size: 1.6rem; font-family: Lato, 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, 'Meiryo, Osaka', 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/666850a3-bash_lsコマンド.png" alt="" width="1201" height="212" /></a>


SiteGuardの画像認証をオンにした状態でWordPressログイン画面を開くと、<font color=Red>上記画像で表示している「tmpフォルダ」に画像認証用に生成された画像が追加されます。</font>そのため、<strong>-tオプション(更新時間の降順に表示)</strong>を付けて更新日付でソートすると非常に見つけやすいです。


※ちなみにサーバ内の時間はGMT(グリニッジ標準時)になっていたので、+9時間すると日本時間になります。

また、lsコマンドに「-t」以外のいくつかオプションをつけていますが、下記の<span style="color: #333333;">意味になります。
・-aオプション：一覧で表示
・-lオプション：ファイル詳細を表示

&nbsp;

<strong>上記を表示したまま、再度ログイン画面を表示。
表示されたら、もう一度Bashで先ほどで入力したlsコマンドを入力</strong>

<a href="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/c4471903-bash_lsコマンド_2.png"><img class="alignnone wp-image-86 size-full" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/c4471903-bash_lsコマンド_2.png" alt="" width="1188" height="245" /></a>

ここで、上から三番目に先ほどコマンドを入力した時には無かった「9bd8...」というファイルが追加されているのがわかります。(都度違う名前になります。)
これを直接閲覧できれば、認証画像を見ることができるということになります！
##3. 画像をローカルにダウンロード##
これで最後のステップです。
GCPのBashにおけるファイルダウンロード方法は下記になります。

<strong>Bashのウィンドウ右上の歯車マーク→「ファイルをダウンロード」を選択</strong>

<img class="alignnone size-full wp-image-55" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/b58aeba8-gcp_linux_ssh接続_ファイルダウンロード_1.png" alt="" width="562" height="691" />

&nbsp;

<strong>下記の画面が出てくるので、ダウンロードしたいファイルの完全修飾パス(絶対パス)を入力し、
「ダウンロード」をクリック</strong>
(pwdコマンドで出力したパスにファイル名.拡張子を付けば簡単に絶対パスが作れます。)
<a href="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/372b240f-gcp_linux_ssh接続_ファイルダウンロード_2.png"><img class="alignnone wp-image-56 size-full" src="https://storage.googleapis.com/myfirstproject-bucket-1/2019/08/372b240f-gcp_linux_ssh接続_ファイルダウンロード_2.png" alt="" width="610" height="245" /></a>


これでファイルがダウンロードでき、認証画像が閲覧できます。
<strong>あとはログイン画面で画像に描かれている文字を入力し、ログインするだけです。</strong>


<font color=Red>※画像をダウンロードした後は、ログイン画面を更新しないよう注意してください。
画像の特定からやり直しになります。</font>


&nbsp;

<span style="color: #000000;">また、冒頭にも記載しましたが、</span><span style="color: #000000;">これあくまで緊急的な対応であるため、<strong><font color=Red>管理画面ログイン後は必ずSiteGuardの画像認証をオフにし、</font></strong>必要があれば他の画像認証プラグイン導入をお勧めします。</span>

　　

以上になります。

セキュリティ関連のアドインを入れるときは、こういったバグのせいで管理者が締め出される可能性があるので、十分に気を付ける必要がありそうです。