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」アプリケーションを立ち上げます。最近の更新で「新しいセッション」が自動的にポップアップせず、左側の方に「新しいセッション」のボタンがありますので、クリックして開始します。
- WinSCP新しいサイトへのセッション作成
- WinSCPGCPの固定IPアドレス入力
- WinSCPSSH認証鍵の作成
- WinSCPユーザー名を入力
- WinSCP権限設定
- WinSCPSSH認証鍵設定
- WinSCPGCPのVMインスタンスにログイン
WordPressファイルにアクセス
1.1 新しいサイトへのセッション作成
- 「WinSCP」を起動します。
- 「新しいサイト」をクリックして、「WinSCPのログイン画面」へ遷移します。
1.2 GCPの固定IPアドレスを入力
GCPの「アクセスしたいVMインスタンス」の「固定IPアドレス」を「ホスト名」に入力します。
1.3 SSH認証鍵の作成
- 「ツール」をクリックします。
- 「PuTTYgenを実行」をクリックします。
1.4 SSH認証鍵の生成
「Generate」ボタンをクリックすると生成が始まります。
1.5 マウスをドラッグ
赤い線のように「ぐちゃぐちゃにドラッグ」します。
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秘密鍵」を保存します。
どちらのファイルも「半角英数」で保存したほうが良いと思います。残念ながら私は全角でやってみたことがありません。なんとも言えないところですが、設定関係で日本語で保存して良かった試しがないので。
1.7 ユーザー名を入力
- 「SSH認証鍵」を保存し終えたら、そのウィンドウを閉じて、生成後の画面を閉じて、ログイン画面に戻ります。
- 「ユーザ名」に「例、rsa-key-20200418」を入力します。
- 残るは「パスワード」ですが、入力することはありません。「SSH認証鍵」がパスワードの代わりになります。
- 「設定」ボタンを押して次へ進みます。
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)?
1.9 SSH認証鍵の設定
認証をクリックして次へ進みます。
1.10 保存した「SSH認証鍵」を選択
- 「秘密鍵」の空欄右側「…」をクリック。
- 保存した認証鍵「private key」ファイルを選択。
- 「OK」をクリックして次へ。
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」で「ファイルの検索」を行うとどのディレクトリにあるのかが分かります。
この設定は本当に苦労したポイントですが、得られるものがそれ以上に多く、苦労したかいがあったと実感しています。
今でこそ、仕組みが分かってきてするべきことが明確になりつつありますが、手当り次第だとイライラしかしません。参考になればと思います。
【コメント】 ※「メールアドレス不要」