第6回 【WordPress】 GCP WinSCP で「SSH認証鍵」を使ってアクセスできるように設定する

WordPress GCP

1. 第6回 【WordPress】 GCP WinSCP で「SSH認証鍵」を使ってアクセスできるように設定する

「第5回 GCP バックアップを元にSSH鍵を持たせたVMインスタンスの作成方法」で、必要な「SSH認証鍵の取得方法」です。

環境:Debian 9 php 7.0 Apache 2.4.25 MySQL 5.7 Cocoon

WordPress

「第5回」と説明が重複しますが、「SFTP接続」で「WordPressファイル」を「Windowsのエクスプローラー」のように扱えるようになります。

  • 「SFTP接続」:「SSH認証鍵」
    尋常ではないくらい長いパスワードかと。

「WinSCP」をPCにインストールします。

窓の杜
「WinSCP」SCP/SFTP/FTPS対応のFTPクライアント

「WinSCP」アプリケーションを立ち上げます。最近の更新で「新しいセッション」が自動的にポップアップせず、左側の方に「新しいセッション」のボタンがありますので、クリックして開始します。

手順の流れ
  • WinSCP
    新しいサイトへのセッション作成

  • WinSCP
    GCPの固定IPアドレス入力

  • WinSCP
    SSH認証鍵の作成

  • WinSCP
    ユーザー名を入力

  • WinSCP
    権限設定

  • WinSCP
    SSH認証鍵設定
  • WinSCP
    GCPのVMインスタンスにログイン

    WordPressファイルにアクセス

1.1 新しいサイトへのセッション作成

  • 「WinSCP」を起動します。
  • 「新しいサイト」をクリックして、「WinSCPのログイン画面」へ遷移します。

1.2 GCPの固定IPアドレスを入力

GCPの「アクセスしたいVMインスタンス」の「固定IPアドレス」を「ホスト名」に入力します。

1.3 SSH認証鍵の作成

  • 「ツール」をクリックします。
  • 「PuTTYgenを実行」をクリックします。

1.4 SSH認証鍵の生成

「Generate」ボタンをクリックすると生成が始まります。

1.5 マウスをドラッグ

赤い線のように「ぐちゃぐちゃにドラッグ」します。

注意点

下記のように、なぞってください。そうしないと、いつまで経っても「SSH認証鍵」は生成されません。私がそうでした。いつになったら「SSH認証鍵」生成されるんだよと。どれだけ待っても生成されません。

1.6 SSH認証鍵生成完了

無事に「SSH認証鍵」が生成されると下記画面のようになります。上部記載の「Public key pasting into OpenSSH authorized keys file:」に「ssh-rsa」から始まる「SSH認証鍵」が表示されます。

  • 「Public key pasting into OpenSSH authorized keys file:」の長い「SSH認証鍵」をコピーして「メモ帳などで保存」しておきます。

    「メモ帳などで保存」した「SSH認証鍵」を「第5回 1.4 VMインスタンスの作成画面下部⑥」で入力します。

  • 「Key comment」の「例、rsa-key-20200418」が「ユーザ名」になります。
  • 「Save public key」をクリックして「SSH公開鍵」を保存します。
  • 「Save private key」をクリックして「SSH秘密鍵」を保存します。

    どちらのファイルも「半角英数」で保存したほうが良いと思います。残念ながら私は全角でやってみたことがありません。なんとも言えないところですが、設定関係で日本語で保存して良かった試しがないので。
ポイント

今回利用するのは「private key」の「秘密鍵」です。今のところ、いつどのようにして「public key」ファイルを使用するのかはわかりませんが、念の為保存しています。

1.7 ユーザー名を入力

  1. 「SSH認証鍵」を保存し終えたら、そのウィンドウを閉じて、生成後の画面を閉じて、ログイン画面に戻ります。

  2. 「ユーザ名」「例、rsa-key-20200418」を入力します。

  3. 残るは「パスワード」ですが、入力することはありません。「SSH認証鍵」がパスワードの代わりになります。

  4. 「設定」ボタンを押して次へ進みます。

1.8 WinSCPの権限設定

ここが最重要ポイントかと思います。

  • 「SFTP」をクリック。
  • 「SFTP サーバ」に「sudo /usr/lib/openssh/sftp-server」を入力して次へ進みます。
$ sudo /usr/lib/openssh/sftp-server

参考までにWinSCP公式:How do I change user after login (e.g. su root)?

最重要ポイント

色々と試した結果、「/usr/lib/openssh/sftp-server」に「sudo」で全権限を付与する形でアクセスすることができました。

最下部の「さいごに」で詳しく触れています。

1.9 SSH認証鍵の設定

認証をクリックして次へ進みます。

1.10 保存した「SSH認証鍵」を選択

  • 「秘密鍵」の空欄右側「…」をクリック。
    
  • 保存した認証鍵「private key」ファイルを選択。
    
  • 「OK」をクリックして次へ。
ハマるポイント

この「秘密鍵」の設定が「パスワード」の代わりになります。もし仮に、このフォルダの「認証鍵」を別のフォルダに移動した場合は、再度設定し直す必要があります。

体験談として、「Gmail」に付随する「Google Drive」から、「Google Workspace Business」(G Suite)の「Google Drive File Stream」へファイルをすべて移動した際に、「GCP の WordPress」へアクセスできなくなってしまい「GCP」の色々な設定を変更してみたりしました。最終的にこの「認証鍵」のフォルダ指定が正しくないことに気づいて設定し直しました。馬鹿みたいな話ですけど。

1.11 GCPのVMインスタンスにログイン

「パスワード」は「空欄のまま」ですが設定完了です。

「保存ボタン」を押して「ログイン」します。

1.12 ログイン後の画面

ログインができると、「WordPressファイル」を「Windowsのエクスプローラー」と同様にファイル編集することが可能になります。ものすごく強い味方です。

1.13 どんなフォルダの中身も見れます

下記画面は「Tokyo2020 unofficial 非公式」のフォルダですがコマンドですべてを処理しようとすれば非常に困難です。

1.14 さいごに

1.8 WinSCPの権限設定」において、環境によっては上記設定でアクセスできないこともあると思います。

その際には、下記も試してみることをお勧めします。

$ sudo /usr/lib/sftp-server
$ sudo /usr/libexec/openssh/sftp-server

つまりは、

  • 「sftp-server」

このファイルが有る「ディレクトリ」で「このファイル名」で「sudo」を頭に付与すれば全権限を与えられアクセスできるし、編集できるということになるんだと思います。

もし、sftp-serverファイルが見つからない時には、「WinSCP」で「ファイルの検索」を行うとどのディレクトリにあるのかが分かります。

この設定は本当に苦労したポイントですが、得られるものがそれ以上に多く、苦労したかいがあったと実感しています。

今でこそ、仕組みが分かってきてするべきことが明確になりつつありますが、手当り次第だとイライラしかしません。参考になればと思います。


次は、第7回です。


【コメント】 ※「メールアドレス不要」