Secure Shell(SSH)は主要なWordPress開発ツールです。SSHを使用すると、上級ユーザーは、コーディング等の作業をより簡単に、より速く、より整理されたものにする主要なプラットフォームやソフトウェアにアクセスできます。

したがって、SSHを使用しようとするときに「接続拒否」というエラーが表示されると、不安かもしれません。ただし、これはよくある問題であり、ほんの少しのトラブルシューティングを行うだけで自分でも簡単に修正できます。すぐにコマンドを実行できるようになります。

本記事ではまず、SSHの概要と用途について説明します。次に、PuTTYなど、接続が拒否される一般的な理由をいくつか紹介します。最後に、トラブルシューティングの手順も紹介します。

それでは参りましょう。

SSHとは何か、いつ使用すべきか?

Secure Shell(SSH、Secure Socket Shellとも)は、セキュリティで保護されていないネットワークを使用してサイトのサーバーに安全にアクセスするためのプロトコルです。言い換えれば、お好みのコマンドラインインターフェースを使用してリモートでサーバーに安全にログインする方法です。

sshログインの例

KinstaでホストされているWordPressサイトへのSSHを使用したリモートアクセス

サーバー上のファイルのアップロード、削除、編集のみができるファイル転送プロトコル(FTP)とは異なり、SSHではさまざまな作業ができます。たとえば、エラーによりWordPressサイトにアクセスできなくなった場合、SSHを使用してリモートでアクセスできます。

このプロトコルでは、次のような主要な開発者ツールを使用することもできます。

SSHの使用は上級のスキルであることにご注意ください。WordPressの一般ユーザーは、問題をSSHを使用して自分で解決しようとするのではなく、ご利用の開発者またはホスティング会社に問い合わせた方がいいです。

Important

コマンドの単純な記入ミスでもウェブサイトが破壊される可能性があるため、十分の知識は重要です。

SSH接続が拒否されるのはなぜですか? (接続エラーの5つの理由)

残念ながら、SSHを使用してサーバーに接続しようとしているときに「接続拒否」エラーが発生する状況が複数あります。

最もよくある発生原因は次の通りです。

1. ご利用のSSHサービスがダウンしている

SSHを使用してサーバーに接続するには、サーバーがSSHデーモン(バックグラウンドで動作するプロセスで、接続要求を受け付けるプログラム)を実行している必要があります。

このサービスが停止している場合、サーバーに正常に接続できず、「接続拒否」エラーが発生する名合があります。

「接続拒否」エラー

ターミナルで見た「接続拒否」エラー

サーバーのSSHデーモンがダウンしている理由は、予期しないトラフィックの急増リソースの停止分散型サービス拒否(DDoS)攻撃など、さまざまな理由があります。以下で説明するトラブルシューティング手順を実施しても、ホスティング会社に連絡して、問題の真の原因を特定してもらうこともできます。

SSHサービスがダウンしていると思われる場合は、次のコマンドを実行して確認できます。

sudo service ssh status

コマンドラインを実行して「ダウン」が返された場合は、接続エラーの原因を見つけた可能性が高いです。

Info

Kinstaは、当社の全てのホスティングプランでSSHへのアクセスが利用可能な開発者向けのサービスを提供しております。

2. 認証情報が間違っている

単純すぎるかもしれませんが、サーバーに接続しようとしたときに認証情報の入力ミスをしただけの可能性があります。SSHを実行するために必要な情報が4つあります。

次のコマンドを実行することによりも、SSHのポート番号を確認できます。

grep Port /etc/ssh/sshd_config

コマンドラインは正しいポート番号を返すはずです。

入力した認証情報が正しかったかどうか確認してください。入力ミスや間違ったIPアドレスまたはポート番号を入力してしまった可能性を考慮に入れておきましょう。

3. 使用しようとしているポートが閉じている

「ポート」とは、サーバーへの接続時に指定されるエンドポイントのことです。正しいポートを使用していることを確認することに加えて、使用しようとしているポートが開いているかどうかも確認する必要があります。

ハッカーはポートを悪用してサーバーにアクセスできるため、開いているポートはセキュリティ上の脆弱性です。このため、未使用のポートは、攻撃を防ぐために閉じられることがよくあります。

ポート第22号、またはサーバーのカスタムSSHポートが閉じている場合は、「接続拒否」エラーが発生します。次のコマンドを実行して、ポートが待機しているかどうかを確認できます。

sudo netstat -plnt

コマンドラインは、ポートのリストとそれぞれの状態を返すはずです。ポート第22号の状態はLISTEN(待機中)でなければなりません。そうでない場合は、サーバーに接続できるためにポートを再度開く必要があります。

4. SSHがサーバーにインストールされていない

前述のように、サーバーはSSHデーモンを使用して接続要求を受け付けます。したがって、接続しようとしているサーバーにデーモンがインストールされていない場合、SSHを使用してアクセスすることはできません。

一般的に言えば、ほとんどすべてのホスティング会社では、デフォルトでサーバーにSSHデーモンがインストールされています。SSHデーモンがインストールされていないという問題は、ローカルホストまたは専用サーバーで発生する課題です。

5. ファイアウォールの設定でSSH接続を許可しない

ポートを開くとセキュリティ上のリスクが生じるため、ハッカーからサーバーを保護するためにファイアウォールをインストールすると、ポートへの接続がブロックされることがあります。残念ながら、このため、サーバーにSSHを使用して接続しようとしている無害なユーザーでさえ、ファイアウォール設定のせいで「接続拒否」エラーが発生する可能性があります。

設定が正しくても接続できない場合は、ファイアウォールのルールも確認してください。 以下のコマンドを使用すると、コマンドラインインターフェースでルールを表示できます。

sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules

結果はさまざまですが、次の要素を探して、ファイアウォールがSSH接続をブロックしているかどうかを判断します。

上記のコマンドの結果でdport 22を検索すると、ファイアウォールがSSH接続を許可しているかどうかを判別できるはずです。許可していない場合は、ルールを要求を受け入れるように変更する必要があります。

PuTTYで「接続拒否」と表示されるのはなぜ?

PuTTYはSSHクライアントです。FTPで例えてみると、PuTTYはWindowsマシンのSSHFileZillaです。つまり、PuTTYを使用すると、ユーザーは認証情報を入力してSSH接続を開始できます。

puttyをダウンロード

PuTTYのWebサイト

PuTTYを使用しているときに「接続拒否」エラーが表示された場合、原因は上記のいずれかであると考えられます。

これはあくまでも普通のSSH接続異常です。サーバーへの接続方法はPuTTYだろうがターミナルだろうが、以下のトラブルシューティング手順に従えば問題が解決するはずです。

SSH接続エラーのトラブルシューティング

SSH接続エラーが発生した場合、原因はぞれぞれであるため、トラブルシューティングの手順もそれぞれです。「接続拒否」エラーの上記の原因のトラブルシューティングは次の通りです。

ホスティング会社のサーバーに接続しようとしている場合は、自分で問題を解決してみるよりも、サポートに問い合わせた 方が良いでしょう。上記の解決策をすべて実施しても問題が解決しない場合、localhostまたは専用サーバーのユーザーは、より専門的なフォーラムでさらなるサポートを探してください。

Are you getting the 'Connection refused' error over SSH? Learn why that's happening and how to troubleshoot SSH connectivity errors thanks to this guide 🙅 ✋Click to Tweet

まとめ

サーバーへのSSHを使用した接続は非常に便利なことです。 WordPressダッシュボードにアクセスできないときにサイトにアクセスしたり、WP-CLIを使用してコマンドを実行したり、Gitを使用してサイトのコードの変更を追跡したりできます。

SSH接続エラーには様々な原因がありますが、最もよくあるものを次に示します。

  1. ご利用のSSHサービスがダウンしている
  2. 認証情報が間違っている
  3. 使用しようとしているポートが閉じている
  4. SSHがサーバーにインストールされていない
  5. ファイアウォールの設定でSSH接続を許可しない

このチュートリアルが面白かった方なら、当社のサポートも大好きでしょう。Kinstaのすべてのホスティングプランには、ベテランのWordPress開発者とエンジニアによる24時間365日のサポートが付いています。フォーチュン500のお客様をサポートしているチームとチャットしませんか。当社のプランをご確認ください。