【初心者向け】TeraTerm SSH接続できない時の対処法:完全マニュアル
TeraTermは、Windows環境で広く利用されているターミナルエミュレータです。SSH接続を利用して、リモートサーバーに安全にアクセスできる便利なツールですが、初心者にとっては設定の壁があり、接続できないという問題に直面することも少なくありません。
この記事では、TeraTermを使ってSSH接続ができない場合に、考えられる原因と具体的な対処法を、初心者にも分かりやすく徹底的に解説します。ステップバイステップで問題を切り分け、解決策を見つけ出すための完全マニュアルとして、ぜひご活用ください。
目次
- SSH接続の基礎知識
- 1.1 SSHとは?
- 1.2 TeraTermでSSH接続する仕組み
- 1.3 必要なもの
- TeraTerm SSH接続ができない!よくある原因と解決策
- 2.1 ネットワーク接続の問題
- 2.1.1 インターネット接続の確認
- 2.1.2 Pingコマンドで疎通確認
- 2.1.3 ファイアウォール設定の確認と変更
- 2.1.4 プロキシサーバーの設定
- 2.2 サーバー側の問題
- 2.2.1 SSHサーバーが起動しているか確認
- 2.2.2 SSHポートが正しいか確認
- 2.2.3 サーバー側のファイアウォール設定
- 2.2.4 サーバー側のSSH設定ファイル(sshd_config)の確認
- 2.3 TeraTermの設定の問題
- 2.3.1 ホスト名の入力ミス
- 2.3.2 ポート番号の指定ミス
- 2.3.3 プロトコルの選択ミス
- 2.3.4 認証方式の選択ミス(パスワード認証、公開鍵認証)
- 2.3.5 文字コードの設定
- 2.4 認証の問題
- 2.4.1 パスワードの入力ミス
- 2.4.2 公開鍵認証の設定ミス
- 2.4.2.1 公開鍵がサーバーに登録されているか確認
- 2.4.2.2 秘密鍵の指定が正しいか確認
- 2.4.2.3 鍵ペアの生成方法(PuTTYgenの利用)
- 2.4.2.4 鍵のパーミッション設定
- 2.5 TeraTermのバージョンの問題
- 2.5.1 最新バージョンへのアップデート
- 2.6 その他の問題
- 2.6.1 ルーターの設定
- 2.6.2 DNSサーバーの設定
- 2.6.3 VPN接続の問題
- 2.6.4 サーバー側のリソース不足
- 2.1 ネットワーク接続の問題
- エラーメッセージから問題を特定する
- 3.1 “Connection refused”
- 3.2 “Network is unreachable”
- 3.3 “Permission denied (publickey,password)”
- 3.4 “No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)”
- 3.5 “Timeout”
- トラブルシューティング:より高度な解決策
- 4.1 SSHクライアントのデバッグモード
- 4.2 ネットワークアナライザ(Wiresharkなど)の利用
- 4.3 サーバー側のログファイルの確認
- セキュリティ対策:SSH接続を安全に行うために
- 5.1 強固なパスワードの設定
- 5.2 公開鍵認証の利用
- 5.3 SSHポートの変更
- 5.4 Fail2banの導入
- 5.5 SSHのバージョンアップ
- まとめと今後の学習
1. SSH接続の基礎知識
TeraTermでのSSH接続トラブルシューティングに入る前に、まずはSSH接続の基本的な概念を理解しておきましょう。
1.1 SSHとは?
SSH (Secure Shell) は、ネットワーク経由で安全にリモートコンピュータにアクセスするためのプロトコルです。通信内容を暗号化することで、パスワードや機密情報が盗聴されるリスクを軽減します。
1.2 TeraTermでSSH接続する仕組み
TeraTermはSSHクライアントとして機能し、以下の流れでリモートサーバーとの接続を確立します。
- TeraTermが、指定されたホスト名(またはIPアドレス)とポート番号でサーバーに接続を試みます。
- サーバーは、SSHプロトコルのバージョン情報を交換し、暗号化方式などをネゴシエーションします。
- クライアント(TeraTerm)は、認証方式(パスワード認証または公開鍵認証)に基づいて、サーバーにログインを試みます。
- 認証が成功すると、暗号化された通信チャネルが確立され、リモートサーバー上でコマンドを実行したり、ファイルを転送したりできるようになります。
1.3 必要なもの
TeraTermでSSH接続を行うには、以下のものが必要です。
- TeraTermソフトウェア: 公式サイトからダウンロードしてインストールします。
- SSHサーバー: 接続先のサーバーでSSHサーバーが起動している必要があります。
- ネットワーク環境: インターネットに接続されている必要があります。
- 認証情報: サーバーにログインするためのパスワード、または公開鍵/秘密鍵のペアが必要です。
2. TeraTerm SSH接続ができない!よくある原因と解決策
TeraTermでSSH接続ができない場合、原因は多岐にわたります。ここでは、よくある原因とその解決策を、段階的に解説していきます。
2.1 ネットワーク接続の問題
まず最初に、ネットワーク接続に問題がないかを確認しましょう。
2.1.1 インターネット接続の確認
- 確認方法: Webブラウザを開き、GoogleなどのWebサイトにアクセスできるか確認します。
- 解決策: インターネットに接続されていない場合は、ネットワークケーブルが正しく接続されているか、Wi-Fiルーターが正常に動作しているかなどを確認してください。必要に応じて、ネットワーク管理者にお問い合わせください。
2.1.2 Pingコマンドで疎通確認
Pingコマンドを使って、サーバーにネットワーク的に到達できるかを確認します。
-
確認方法: コマンドプロンプトまたはPowerShellを開き、以下のコマンドを実行します。
ping [サーバーのホスト名またはIPアドレス]
例:
ping example.com
またはping 192.168.1.10
-
結果の確認:
- 成功: パケットの送受信が正常に行われ、「Reply from …」のようなメッセージが表示されます。
- 失敗: 「Request timed out.」や「Destination host unreachable.」のようなメッセージが表示されます。
-
解決策:
- タイムアウト: サーバーがダウンしているか、ネットワーク経路に問題がある可能性があります。サーバー管理者にお問い合わせください。
- 宛先ホストに到達不能: ホスト名またはIPアドレスが間違っているか、ネットワーク設定に問題がある可能性があります。ホスト名またはIPアドレスを再確認し、ルーターの設定などを確認してください。
2.1.3 ファイアウォール設定の確認と変更
Windowsファイアウォールや、セキュリティソフトに付属のファイアウォールが、SSH接続をブロックしている可能性があります。
- 確認方法: Windowsファイアウォールの設定を確認し、TeraTermの通信が許可されているか確認します。
- 「コントロールパネル」→「システムとセキュリティ」→「Windows Defender ファイアウォール」→「Windowsファイアウォールを介したアプリまたは機能を許可する」を開きます。
- リストに「TeraTerm」があるか確認し、チェックボックスがオンになっているか確認します。
- 解決策:
- TeraTermがリストにない場合は、「別のアプリを許可する」をクリックし、TeraTermの実行ファイル(通常は
teraterm.exe
)を選択して追加します。 - TeraTermがリストにある場合は、チェックボックスがオンになっていることを確認します。オンになっていない場合は、チェックを入れて「OK」をクリックします。
- セキュリティソフトのファイアウォールも同様に確認し、TeraTermの通信を許可するように設定します。
- TeraTermがリストにない場合は、「別のアプリを許可する」をクリックし、TeraTermの実行ファイル(通常は
2.1.4 プロキシサーバーの設定
プロキシサーバーを経由してインターネットに接続している場合は、TeraTermにプロキシサーバーの設定を行う必要があります。
- 確認方法: TeraTermの設定で、プロキシサーバーの設定が有効になっているか確認します。
- TeraTermを起動し、「設定」→「SSH」を選択します。
- 「Proxy」タブを開き、「Proxyを使う」にチェックが入っているか確認します。
- プロキシの種類、ホスト名、ポート番号が正しく設定されているか確認します。
- 解決策: プロキシサーバーの情報が間違っている場合は、正しい情報を入力して「OK」をクリックします。プロキシサーバーを使用しない場合は、「Proxyを使う」のチェックを外します。
2.2 サーバー側の問題
ネットワーク接続に問題がない場合、サーバー側の設定に問題がある可能性があります。
2.2.1 SSHサーバーが起動しているか確認
サーバー側でSSHサーバーが起動しているか確認します。
-
確認方法: これは、サーバーに直接アクセスできる場合に可能な確認方法です。Linuxサーバーであれば、ターミナルで以下のコマンドを実行します。
bash
sudo systemctl status sshdまたは
bash
sudo service sshd statusActive: active (running) と表示されていれば、SSHサーバーは起動しています。
-
解決策: SSHサーバーが起動していない場合は、以下のコマンドで起動します。
bash
sudo systemctl start sshdまたは
bash
sudo service sshd start必要であれば、OS起動時に自動起動するように設定します。
bash
sudo systemctl enable sshd
2.2.2 SSHポートが正しいか確認
SSHのデフォルトポートは22番ですが、セキュリティ上の理由から変更されている場合があります。
-
確認方法: サーバーのSSH設定ファイル(
sshd_config
)を確認します。- 通常、
sshd_config
は/etc/ssh/sshd_config
にあります。 Port
という設定項目を確認します。
- 通常、
-
解決策: サーバー管理者に確認し、正しいポート番号をTeraTermに入力してください。
2.2.3 サーバー側のファイアウォール設定
サーバー側のファイアウォールが、SSHポートへのアクセスをブロックしている可能性があります。
- 確認方法: サーバーのファイアウォール設定を確認します。Linuxサーバーであれば、
iptables
やfirewalld
などが利用されています。 -
解決策: ファイアウォールで、SSHポート(通常は22番)へのアクセスを許可するルールを追加します。
-
iptablesの場合:
bash
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo systemctl restart iptables -
firewalldの場合:
bash
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
-
2.2.4 サーバー側のSSH設定ファイル(sshd_config)の確認
sshd_config
ファイルの設定によっては、特定のIPアドレスからの接続のみを許可している場合があります。
- 確認方法: サーバーの
sshd_config
ファイルを確認し、AllowUsers
やAllowGroups
、DenyUsers
、DenyGroups
といった設定項目を確認します。また、ListenAddress
で特定のIPアドレスにのみ接続を許可している場合もあります。 - 解決策: 自分のIPアドレスが許可されているか確認し、必要であれば
sshd_config
ファイルを編集してサーバーを再起動します。設定変更には十分注意し、誤った設定で接続できなくなることを避けてください。
2.3 TeraTermの設定の問題
サーバー側に問題がない場合、TeraTermの設定に誤りがある可能性があります。
2.3.1 ホスト名の入力ミス
ホスト名(またはIPアドレス)を間違って入力している可能性があります。
- 確認方法: TeraTermの接続設定画面で、ホスト名が正しく入力されているか確認します。
- 解決策: ホスト名を修正し、再度接続を試みます。
2.3.2 ポート番号の指定ミス
SSHポート番号を間違って入力している可能性があります。
- 確認方法: TeraTermの接続設定画面で、ポート番号が正しく入力されているか確認します。
- 解決策: 正しいポート番号を入力し、再度接続を試みます。
2.3.3 プロトコルの選択ミス
プロトコルをSSH以外に選択している可能性があります。
- 確認方法: TeraTermの接続設定画面で、プロトコルがSSHに選択されているか確認します。
- 解決策: プロトコルをSSHに変更し、再度接続を試みます。
2.3.4 認証方式の選択ミス(パスワード認証、公開鍵認証)
認証方式がサーバーの設定と一致していない可能性があります。
- 確認方法: TeraTermの接続設定画面で、認証方式が正しく選択されているか確認します。
- 解決策:
- パスワード認証: パスワード認証を選択している場合は、正しいパスワードを入力します。
- 公開鍵認証: 公開鍵認証を選択している場合は、秘密鍵が正しく指定されているか確認します。
2.3.5 文字コードの設定
文字コードの設定が、サーバー側の設定と一致していない可能性があります。
- 確認方法: TeraTermの「設定」→「端末」で、文字コードの設定を確認します。
- 解決策: 一般的には「UTF-8」が推奨されます。必要に応じて、サーバー側の設定に合わせて文字コードを変更します。
2.4 認証の問題
認証に失敗する場合、パスワードまたは公開鍵の設定に問題がある可能性があります。
2.4.1 パスワードの入力ミス
単純なミスですが、パスワードを間違って入力している可能性があります。Caps Lockキーが有効になっていないか確認し、パスワードを再度入力してください。
2.4.2 公開鍵認証の設定ミス
公開鍵認証の設定に問題がある場合、以下の点を確認してください。
2.4.2.1 公開鍵がサーバーに登録されているか確認
公開鍵がサーバーの~/.ssh/authorized_keys
ファイルに登録されているか確認します。
- 確認方法: サーバーにログインし、
~/.ssh/authorized_keys
ファイルの内容を確認します。 - 解決策: 公開鍵が登録されていない場合は、
authorized_keys
ファイルに公開鍵をコピー&ペーストします。
2.4.2.2 秘密鍵の指定が正しいか確認
TeraTermで指定している秘密鍵が正しいか確認します。
- 確認方法: TeraTermのSSH設定で、秘密鍵のパスが正しく設定されているか確認します。
- 解決策: 正しい秘密鍵のパスを指定し、再度接続を試みます。
2.4.2.3 鍵ペアの生成方法(PuTTYgenの利用)
鍵ペアを正しく生成できていない可能性があります。PuTTYgenなどのツールを使って、鍵ペアを生成し直してください。
- PuTTYgenの利用:
- PuTTYgenを起動します。
- 「Type of key to generate」で「RSA」を選択します。
- 「Number of bits in a generated key」で、適切なビット数(2048以上推奨)を選択します。
- 「Generate」ボタンをクリックし、指示に従ってマウスを動かします。
- 公開鍵、秘密鍵が表示されるので、それぞれ保存します。
- 公開鍵は、
~/.ssh/authorized_keys
ファイルに登録します。 - 秘密鍵は、TeraTermのSSH設定で指定します。
2.4.2.4 鍵のパーミッション設定
秘密鍵のパーミッション設定が正しくない可能性があります。
- 確認方法: 秘密鍵のパーミッションを確認します。Linux環境では、通常、秘密鍵のパーミッションは
600
(所有者のみ読み書き可能)に設定されている必要があります。 -
解決策: 秘密鍵のパーミッションを
600
に変更します。bash
chmod 600 ~/.ssh/id_rsa
2.5 TeraTermのバージョンの問題
古いバージョンのTeraTermを使用している場合、SSH接続に問題が発生する可能性があります。
2.5.1 最新バージョンへのアップデート
TeraTermを最新バージョンにアップデートすることで、問題が解決する場合があります。
- 解決策: TeraTerm公式サイトから最新バージョンをダウンロードしてインストールします。
2.6 その他の問題
上記の解決策を試しても問題が解決しない場合は、以下の点も確認してください。
2.6.1 ルーターの設定
ルーターがSSHポートへのアクセスをブロックしている可能性があります。ルーターの設定を確認し、必要であればポートフォワードの設定を行います。
2.6.2 DNSサーバーの設定
DNSサーバーの設定が正しくない場合、ホスト名を正しく解決できない可能性があります。DNSサーバーの設定を確認し、必要であればGoogle Public DNSなどの信頼できるDNSサーバーに変更します。
2.6.3 VPN接続の問題
VPN接続を使用している場合、VPNの設定がSSH接続を妨げている可能性があります。VPNの設定を確認し、必要であればVPNを切断して接続を試みます。
2.6.4 サーバー側のリソース不足
サーバー側のリソース(CPU、メモリなど)が不足している場合、SSH接続が不安定になることがあります。サーバー管理者にお問い合わせください。
3. エラーメッセージから問題を特定する
TeraTermでSSH接続に失敗した場合、エラーメッセージが表示されることがあります。エラーメッセージは、問題の原因を特定する上で非常に役立ちます。
3.1 “Connection refused”
このエラーは、サーバーがSSH接続を受け付けていないことを示します。
- 原因:
- SSHサーバーが起動していない。
- ファイアウォールがSSHポートへのアクセスをブロックしている。
- ポート番号が間違っている。
- 解決策: 上記のサーバー側の問題を確認してください。
3.2 “Network is unreachable”
このエラーは、ネットワーク的にサーバーに到達できないことを示します。
- 原因:
- インターネットに接続されていない。
- ホスト名またはIPアドレスが間違っている。
- ルーターの設定に問題がある。
- 解決策: 上記のネットワーク接続の問題を確認してください。
3.3 “Permission denied (publickey,password)”
このエラーは、認証に失敗したことを示します。サーバーがパスワード認証と公開鍵認証の両方を許可している場合に表示されます。
- 原因:
- パスワードが間違っている。
- 公開鍵認証の設定が間違っている。
- 解決策: 上記の認証の問題を確認してください。
3.4 “No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)”
このエラーは、サーバーが許可している認証方式と、クライアントがサポートしている認証方式が一致しないことを示します。
- 原因:
- サーバーがパスワード認証を許可していない。
- クライアントが公開鍵認証に必要な設定をしていない。
- 解決策:
- サーバーがパスワード認証を許可しているか確認します。許可していない場合は、公開鍵認証の設定を行う必要があります。
- TeraTermで公開鍵認証に必要な設定(秘密鍵の指定など)が正しく行われているか確認します。
3.5 “Timeout”
このエラーは、接続がタイムアウトしたことを示します。
- 原因:
- ネットワークが不安定である。
- サーバーが応答していない。
- ファイアウォールが接続をブロックしている。
- 解決策:
- ネットワーク環境を確認します。
- サーバーが正常に動作しているか確認します。
- ファイアウォールの設定を確認します。
4. トラブルシューティング:より高度な解決策
上記の方法で解決できない場合は、より高度なトラブルシューティングを試す必要があります。
4.1 SSHクライアントのデバッグモード
TeraTermにはデバッグモードがありませんが、PuTTYなどのSSHクライアントにはデバッグモードが搭載されているものがあります。デバッグモードを使用すると、SSH接続の詳細なログが出力され、問題の原因を特定するのに役立ちます。
4.2 ネットワークアナライザ(Wiresharkなど)の利用
Wiresharkなどのネットワークアナライザを使用すると、ネットワーク上を流れるパケットをキャプチャして分析することができます。これにより、SSH接続のどの段階で問題が発生しているかを特定することができます。ただし、ネットワークに関する深い知識が必要となります。
4.3 サーバー側のログファイルの確認
サーバー側のSSHサーバーのログファイル(通常は/var/log/auth.log
など)を確認すると、認証に失敗した理由や、接続に関するエラーメッセージを確認することができます。
5. セキュリティ対策:SSH接続を安全に行うために
SSH接続は、安全に行うことが非常に重要です。以下のセキュリティ対策を必ず実施してください。
5.1 強固なパスワードの設定
パスワード認証を使用する場合は、必ず強固なパスワードを設定してください。
- 強固なパスワードの例:
- 12文字以上
- 大文字、小文字、数字、記号を組み合わせる
- 辞書に載っている単語や、個人情報を使用しない
5.2 公開鍵認証の利用
パスワード認証よりも、公開鍵認証の方がはるかに安全です。可能な限り、公開鍵認証を使用してください。
5.3 SSHポートの変更
SSHのデフォルトポート(22番)を使用していると、不正アクセスのリスクが高まります。SSHポートを、22番以外のポートに変更することを推奨します。
5.4 Fail2banの導入
Fail2banは、不正なログイン試行を検知し、自動的にIPアドレスをブロックするツールです。SSHサーバーへのアタックを防御する上で非常に有効です。
5.5 SSHのバージョンアップ
古いバージョンのSSHには、セキュリティ上の脆弱性が存在する可能性があります。常に最新バージョンのSSHを使用するようにしてください。
6. まとめと今後の学習
この記事では、TeraTermでSSH接続ができない場合に、考えられる原因と具体的な対処法を解説しました。SSH接続は、ネットワーク、サーバー、クライアント、認証など、様々な要素が複雑に絡み合っています。問題解決には、根気強く一つ一つ確認していくことが重要です。
SSHに関する知識を深めるためには、以下の学習をおすすめします。
- SSHプロトコルの詳細
- TCP/IPネットワークの基礎
- Linuxサーバーの管理
- セキュリティに関する知識
SSHは、サーバー管理やネットワークエンジニアリングにおいて不可欠な技術です。この記事を参考に、SSH接続に関する理解を深め、安全で快適なリモートアクセス環境を構築してください。