SSHを使用してWordPressサイトにアクセス—そんな方法を学ぼうなんて、考えたこともないかもしれません。ほとんどのWordPressユーザーにとって、最も馴染みのあるのは、 WordPressダッシュボードと管理画面を使用し、SFTPとphpMyAdminを組み合わせてデータベースにアクセスする方法でしょう。
しかし、SSHはWordPress関連ツールの中でも最も価値ある1つと言っても過言ではありません。
ワークフローをスピードアップしたいならば、SSHを使用してWordPressサイトにアクセスする方法を学んでみることをお勧めします。
作業が今まで以上に捗ります。
SSHとは?
まず、SSHとは何なのか、どんな時に使用するのか考えてみましょう。
SSHは「Secure Shell(セキュア・シェル)」を意味します。 SSHの仕様では、次のように定義されています。
「安全ではないネットワーク上で利用可能な、安全なリモートログインおよびその他の安全なネットワークサービスのためのプロトコル」
つまり、ログイン認証情報があれば、サイトをホストしている場所に関係なく、どのコンピューターからでもリモートでWordPressサイトにアクセスできます。この手法の使用は本質的に安全だとされています。
SSHは安全なログイン手段のために設計されているため、使用している間は誰もあなたの接続にアクセスできない、と安心することができます。また、コツをつかめば、すばやく簡単に操作可能です。WordPress REST API を操作したい場合は、これをコマンド送信の1つの方法として使うこともできます。
SSH経由でサーバーに接続するには、次の2つが必要です。
- インターフェース
- ログイン情報
LinuxまたはmacOSをお使いでれば、オペレーティングシステムにインターフェースが組み込まれているため、SSHクライアントをインストールする必要はありません。一方で、Windowsの場合は、クライアントをインストールする必要があります。この記事では、その方法をご紹介します。
SSH経由でサイトに接続するために必要なツール
まず、ターミナルまたはSSHクライアントのいずれかを使用する必要があります。両方とも非常によく似た方法で機能します。
macOSまたはLinuxのターミナルを介した接続
ターミナルは、LinuxまたはmacOSに付属するアプリケーションで、コマンドラインを使用して、マシンまたはリモートサーバーにコマンドを送信できます。
これはグラフィカルインターフェイスではないため、マウスを使用しません。代わりに、テキストコマンドを入力します。コマンドが視覚的に表現されることに慣れている初めてのユーザーの方は、少し戸惑うかもしれません。しかし、慣れるとすぐに使い方がわかります。
Microsoft MS-DOSなどのシステムを使用して(グラフィカルユーザーインターフェース登場前に)コンピューターを操作したことがあれば、この手のインターフェースは見慣れているでしょう。ここで朗報です。ターミナルはMS-DOSよりも多くのオプションを提供してくれます!
Macでターミナルを開くには、Spotlightを開いて「ターミナル」と入力します。「アプリケーション」>「ユーティリティ」フォルダからもアクセスできます。
Linuxでは、「アプリケーション」メニューからターミナルを見つけます。すぐにわからない場合は、プロンプトに「ターミナル」と入力して探してください。
WindowsのSSHクライアントを介した接続
SSHクライアントは、Windowsを使用する場合、SSH経由で接続するためにインストールする必要があるプログラムです。
最も有名なSSHクライアントはPuTTYです。Windowsからサイトにアクセスするには、まずこれをダウンロードしてインストールする必要があります。
WindowsへのPutty SSHクライアントのインストール
まず、PuTTYダウンロードページに移動しましょう。
ここから、Windowsのバージョンに対応するパッケージを選択します。32ビット版と64ビット版のどちらをダウンロードするかわからない場合は、よくある質問のページをご覧ください。よくわからない場合には、32ビットバージョンを選んでおく方が安全です。
MSI(「Windowsインストーラー」)の下にある2つのオプションのいずれかをクリックします。ファイルがダウンロードされ、インストーラーが実行されます。
PuTTYがインストールできたら、それを開き、サイトへの接続を進めていきます。
コマンドラインを使ってサーバーに接続する方法
ターミナルの発見、SSHクライアントのインストールを終えたら、次のステップとしてリモートサイトに接続します。
ターミナルまたはSSHクライアントのいずれかで、コマンドラインを使用してサーバーに接続し、コマンドを送信します。なお、ここからは「ターミナル」や「SSHクライアント」の代わりに、単にコマンドラインという言葉を使いますので、ご了承ください。
ここで、次の4つの情報が必要になります。
- サーバーアドレス
- ユーザー名
- パスワード
- ポート
サーバーアドレスは通常、ドメイン名またはIPアドレスです。サイトをKinstaでホスティングしている場合には、IPアドレスがこれにあたります。
ユーザー名とパスワードは、WordPress管理者のものではなく、FTPのユーザー名とパスワードになります。
ポートは、ホスティングプロバイダーによって提供されます。場合によっては、デフォルトのポートが使用されますが、Kinstaではセキュリティを高めるために、サイトごとに異なるポートを使用しています。
MyKinstaでは、サイトを選択し、情報画面のSFTP/SSHセクションから、これが確認できます。
これをコピーしてコマンドラインに貼り付けるだけでOKす。
すると、パスワードの入力が求められます。こちらについてもMyKinstaからコピーして貼り付けます。これで、サーバーへのアクセス権が付与されます。
次のような画面が表示されます。
Kinstaホスティングを使用していない場合、この画面は少し異なりますが、同じ流れでサーバーにアクセスできます。
SSHを使用してサイトを操作する方法
これで、SSHを使用してサーバーやサイトを操作できま。使用できるSSHコマンドや、 WordPressコマンドラインインターフェース(WP-CLI) で提供されているコマンドはいくつもあります。
基本的なSSHコマンド
SSHには、サーバーに接続して、これを操作するために使えるさまざまなコマンドがあります。
コマンドラインからサーバーにアクセスしたら、あとは、ターミナルを使用して自分のコンピューターを操作するのと同じように、SSHコマンドを入力するだけでOKです。
最初に知っておくと便利なSSHコマンドをいくつか見てみましょう。
The ls Command
ls
コマンドを使用すると、現在の場所にあるファイルとディレクトリのリストが取得できます。コマンドにさらに別の情報を追加して、詳細情報を取得できます。
ls -l
:サイズ、変更日時、所有者、権限など、ファイルの詳細を表示します。ls -a
:非表示のファイルとディレクトリを表示します。
「cd」コマンド
cd
コマンドを使用すると、ディレクトリが変更できます。新しいディレクトリに移動し、コマンドラインに現在の場所が示されます。
その後、再度ls
を使用して、新しいディレクトリの内容を確認することもできます。
cd
を使用すると、複数のディレクトリを下に移動したり、上の階層のディレクトリや別のディレクトリに移動したりできます。上に移動するには、次のようにcd
の後に2つのドットを入力します。
cd ..
また、特定のディレクトリに移動するには、次のような完全なディレクトリパスを入力します。
cd public/wp-content/themes
「mkdir」コマンド
mkdir
コマンドを使用すると、新しいディレクトリを作成できます。themesディレクトリにいる場合には、新しいテーマ用の新しいディレクトリが作成できます。
mkdir mytheme
「touch」コマンド
新しいディレクトリを作成したら「touch」コマンドを使用して新しいファイルを追加できます。
touch style.css
「cat」コマンド
ファイルのコンテンツを表示するには、cat
コマンドを使用します。
「rm」コマンド
rm
コマンドを使用して、ファイルまたはフォルダーを削除します。この操作を元に戻すことはできないため、注意して使用してください。
rm style.css
「cp」コマンド
cp
コマンドは、ファイルとフォルダーをコピーするために使用されます。ファイルまたはフォルダーの名前と、コピー先の場所を指定する必要があります。
cp [options] [source] [destination]
コマンドの最初にオプションを追加することもできますが、必須ではありません。wp-contentディレクトリにいるときに、footer.phpファイルをテーマ間でコピーするには、次のように入力します。
cp /themes/theme1/footer.php /themes/theme2/
移動先のファイルに名前を追加しないでください。これを行い、そして、移動先に同じ名前のファイルが存在すると、そのファイルがコピーで上書きされてしまいます。
移動先のファイル名を含めることなく、そして、そのファイルがすでに存在する場合、エラーメッセージが表示され、コピーは行われません。
このコマンドの最初に追加できるオプションがいくつかあることは前述の通りです。具体的には以下の通りです。
-f
:移動先ファイルへの書き込み権限がない場合、そのファイルは削除され、コマンドによって新しいファイルが作成されます。-u
:ソースファイルが移動先ファイルよりも新しい場合にのみ、ソースファイルをコピーします。-n
:既存のファイルを上書きしなくなります。-a
:ファイルをアーカイブします。-R
:フォルダーの場合のみ、そのフォルダー内のすべてのファイルとフォルダーをコピーします。
「mv」コマンド
ファイルのコピーの代わりに、mv
コマンドを使用してファイルを移動することもできます。この場合ソースと移動先を指定するだけでOKです。オプションはありません。
mv /themes/theme1/footer.php /themes/theme2/
これにより、footer.phpファイルがtheme1から削除され、theme2に移動します。フォルダーでこれを行うと、ディレクトリ内のファイルとフォルダーも移動されます。
SSHコマンドの詳細については、SSHのドキュメントをご覧ください。
WP-CLIを使用してサイトを操作する
標準のSSHコマンドに加えて、WordPressにはWP-CLIインターフェースがあり、さらに多くのコマンドが利用できまます。これには、ファイルやフォルダ、管理オプション、 データベースの操作が含まれます。
KinstaでのホスティングにはWP-CLIが付属しており、すぐに使い始めることができます。もしお使いのホスティングプロバイダーがWP-CLIを提供していない場合には、こちらのWP-CLIガイドの手順に従ってインストールできます。
SSH接続のテストとトラブルシューティング
時にSSHが意図したとおりに動作しないこともあるでしょう。接続ができない、使用したコマンドが期待どおりに機能しない、という事態です。
そんな時には、以下のトラブルシューティングのヒントをお試しください。
SSH経由で接続できない場合
サーバーに接続できない場合は、コマンドラインから表示されるエラーメッセージやプロンプトを確認してください。場合によっては、はい/いいえのプロンプトに応答するか、コマンドのタイプミスを修正する必要があります。
それでも機能しない場合は、入力したログイン情報が間違っていないか確認してください。これは、MyKinstaの該当するサイトの「情報」ページから取得できます。他のホスティングプロバイダーでは、cPanelまたはダッシュボードにSSHセクションを備えている可能性があります。
何度挑戦しても機能しない場合には、SSHパスワードをリセットしてみてください。さらにインターネット接続に問題がなく、サーバーへのアクセスを妨げるファイアウォールがないことも確認してください。問題が判明しない時には、ターミナルまたはSSHクライアントを閉じて、もう一度開いてみてください。
ホスティングアカウントにログインして、アクセス権の取得を妨げるサーバーの問題がないことも確認しましょう。Kinstaであれば、システムステータスページにアクセスして、問題の種を見つけることができます。
パブリックネットワークを使用している場合、ポートへのSSHアクセスが許可されていない可能性があります。確実に動作していることがわかっている他のポートでテストしてみてください。
このすべてがうまくいかない場合には、ホスティングプロバイダーに問い合わせて、ログを確認することで、接続できなかった理由を調べましょう。
SSHコマンドが期待どおりに機能しない場合
もう1つの一般的な問題は、SSHコマンドが期待どおりに機能しないことです。通常、コマンドが正しく入力されていないことが原因です。
例えば、ls
とすべきところをis
と入力してしまうと、このようになります。
エラーの警告(command not found
)が表示されるので、正しいコマンドを使用してもう一度挑戦します。
コマンドを正しく入力していても、パラメーターが間違っていることがあります。そんな時には、SSHコマンドについてはSSHのドキュメントを、WP-CLIコマンドについてはWP-CLIのドキュメントをご確認してください。
接続の問題でSSHコマンドが機能しない場合、エラーメッセージが表示されます。コマンドラインは、何が起こっているか逐一教えてくれます。これこそが、コマンドラインの利点の1つです。実際、多くの場合、グラフィカルインターフェースより多くの明確な情報が表示されます。
セキュリティ強化のために新しいSSHキーペアを生成する方法
SSHキーペアを生成すると、ユーザー名とパスワードを使用してSSHに接続する場合と比べて、セキュリティがさらに強化されます。これは、ターミナルまたはSSHクライアントから行います。方法は次のとおりです。
キーペア生成は、次の3つのステップで行います。
- ターミナルまたはSSHクライアントでキーペアを生成
- キーペアをホスティングアカウントに追加(MyKinstaでは「ユーザー設定」画面から実行)
- ターミナルまたはSSHクライアントを介して、キーペアを使用してサーバーに接続
macOS、Linux、Windows用のSSHキーペア生成ガイド からな詳細な手順をご覧ください。
まとめ
SSHを使用してサーバーとWordPressサイトに接続できると、WordPress管理インターフェース、FTP、さらにはphpMyAdminに依存するよりも作業が効率的になります。
上記の手順でSSH経由でサーバーに接続すると、アプリケーションやブラウザーウィンドウを切り替えることなく、サイトでより多くのことができるようになります。
さて、あなたが日常的に使用するお気に入りのターミナルコマンドは何ですか?コメント欄から教えてください!
コメントを残す