概要: TeraTermでPEMファイルを使ったSSH接続ができない、あるいは「Permission denied」エラーに悩んでいませんか?この記事では、その原因と具体的な解決策を、EC2接続やTelnet、その他のエラーまで幅広く解説します。
TeraTermでのPEM接続とは?基本を理解しよう
PEMファイル(秘密鍵)の役割と重要性
SSH接続において、パスワード認証の代わりに広く利用されるのが「公開鍵認証方式」です。この方式でクライアント(あなたのPC)側に保持しておく「秘密鍵」を格納したファイルがPEM形式(.pem)です。PEMファイルは、サーバー側に登録された公開鍵と対になるもので、これがあることで「確かに許可されたユーザーである」ことを証明できます。
非常に強力な認証手段である一方、PEMファイルが第三者に渡ってしまうと、誰でもサーバーにフルアクセスできてしまうリスクがあります。そのため、取り扱いには細心の注意が必要です。TeraTermで接続する際は、このPEMファイルを正しく指定し、読み込ませる必要があります。
ポイント:PEMファイルは「物理的な鍵」と同じです。紛失したり、不用意にメールで送ったりしないよう厳重に管理しましょう。
TeraTermでSSH接続を開始するまでの基本ステップ
TeraTermを使用してPEM接続を行う手順は、一見複雑そうですが、基本を押さえれば簡単です。まず、TeraTermを起動し、「新しい接続」ウィンドウで接続先のホスト名(またはIPアドレス)を入力します。サービスは「SSH」、TCPポートは通常「22」を指定します。
「OK」をクリックすると、次に「SSH認証」画面が表示されます。ここで「ユーザ名」を入力し、認証方式として「秘密鍵(RSA/DSA/ECDSA/ED25519鍵)を使う」を選択します。右側の「…」ボタンをクリックし、用意したPEMファイルを選択してから「OK」を押すことで接続が開始されます。
この際、ファイル選択ダイアログで「すべてのファイル(*.*)」を選択しないと、拡張子が「.pem」のファイルが表示されない場合があるため注意してください。
Amazon Linux 2023など、最新OSでの注意点
近年、Amazon Linux 2023といった新しいOSへの接続時に、従来と同じ手順を踏んでもエラーになるケースが増えています。これは、OS側のセキュリティ強化により、古い暗号アルゴリズム(ssh-rsaなど)がデフォルトで無効化されたためです。
最新のOSへ接続する場合、接続に使用するTeraTerm自体のバージョンも重要になります。古いTeraTerm(バージョン4.106以前など)は、新しい署名アルゴリズム(rsa-sha2-256/512など)に対応していないことがあり、これが接続失敗の原因となります。
OSのアップデートに合わせて、クライアントツールであるTeraTermも最新版(バージョン5系など)へ更新しておくことが、トラブルを防ぐ近道です。
「Permission denied」エラーに遭遇!原因と対策
秘密鍵(.pem)のパーミッション設定を確認する
SSH接続で最も頻繁に遭遇するエラーの一つが「Permission denied (publickey)」です。これは、提示した秘密鍵がサーバー側に拒否されたことを意味します。Linuxサーバーなどの場合、秘密鍵ファイルの権限設定が「緩すぎる」とセキュリティ上のリスクがあると判断され、接続が拒否されることがあります。
通常、秘密鍵は「所有者のみが読み書きできる」設定である必要があります。LinuxやMacから接続する場合は、chmod 400 key.pemといったコマンドで権限を絞ります。Windows上のTeraTermから接続する場合、ファイル自体のプロパティでアクセス権を確認し、自分以外のユーザーにフルコントロール権限が与えられていないかチェックしてください。
対策:ファイルのアクセス権限が適切でないと、SSHクライアントは安全のためにその鍵の使用を拒否することがあります。
指定しているユーザー名が正しいか再チェック
意外と見落としがちなのが「ユーザー名」の間違いです。EC2インスタンスなどのクラウドサーバーでは、OSの種類によってデフォルトのユーザー名が厳格に決まっています。これを間違えると、どれだけ正しいPEMファイルを使っても「Permission denied」となります。
代表的なデフォルトユーザー名は以下の通りです。
| OSの種類 | デフォルトユーザー名 |
|---|---|
| Amazon Linux 2 / AMI | ec2-user |
| Ubuntu | ubuntu |
| CentOS | centos |
| Debian | admin |
自分の起動したインスタンスがどのOSに基づいているか、AWSマネジメントコンソールなどで今一度確認してみましょう。
鍵のパスと認証方式の選択ミスを防ぐ
TeraTermの認証画面で、正しく設定を行っているつもりでも、人為的なミスが発生することがあります。例えば、秘密鍵を選択する際に「別のインスタンス用のPEMファイル」を選んでしまっていたり、パスワード入力欄に何かを入力してしまっていたりする場合です。
また、TeraTermの「認証方式」のラジオボタンが「プレインテキストでパスワードを送信」になったまま、秘密鍵ファイルを指定しているケースも散見されます。必ず「RSA/DSA/ECDSA/ED25519鍵を使う」が選択されていることを確認してください。
もし解決しない場合は、一旦TeraTermを終了し、設定を保存せずに再度一から入力を試みることで、思わぬ設定ミスが解消されることがあります。
EC2インスタンスへのTeraTerm SSH接続トラブルシューティング
セキュリティグループのインバウンドルール設定
PEMファイルやユーザー名が正しくても、ネットワーク的な「壁」があれば接続はできません。AWS EC2の場合、まず確認すべきは「セキュリティグループ」の設定です。インバウンドルール(内側に入る通信のルール)で、SSH用のポート(デフォルトは22番)が許可されているか確認してください。
特に、ソース(送信元)の設定が「自分のIP」になっている場合、ネットワーク環境(Wi-Fiの切り替えやデザリングの使用など)が変わると、IPアドレスが変化して接続できなくなります。
確認手順:AWSコンソールの「セキュリティグループ」から、現在の自分のパブリックIPアドレスがポート22に対して許可されているかを再設定してみましょう。
インスタンスの起動状態とSSHサービスの確認
そもそも接続先のインスタンスが正常に稼働しているかも確認が必要です。AWSコンソールでインスタンスの状態が「Running(実行中)」になっているか、また「ステータスチェック」が「2/2 チェックに合格しました」となっているかを確認します。
もしインスタンスは起動しているのに接続できない場合、サーバー内のSSHサービス(sshd)が停止しているか、高負荷で応答できない状態に陥っている可能性があります。最近設定変更を行った直後であれば、設定ファイルのミスでサービスが再起動に失敗している可能性も考えられます。この場合、インスタンスの再起動を試す価値があります。
Session Managerを使用した代替接続手段の検討
どうしてもSSH接続が復旧できない場合の「救急箱」として、AWS Systems Managerの「Session Manager」があります。これは、SSHポートを解放していなくても、ブラウザ経由でインスタンスのシェルを操作できる非常に便利な機能です。
Session Managerを使えば、SSHの設定ミス(例:sshd_configの記述ミスや鍵の紛失)を内部から修正することが可能です。利用には、インスタンスに適切なIAMロールが付与されていることと、SSM Agentが動いていることが条件ですが、トラブルシューティングの強力な味方になります。
「SSHが通らない=手詰まり」ではなく、こうした代替手段があることを知っておくと、運用時の安心感が格段に変わります。
TeraTermのTelnet接続とIPアドレス確認の基本
Telnet接続の手順とトラブル時の文字化け対策
SSHだけでなく、古い機器のメンテナンスやネットワークテストのために「Telnet」を使用することもあります。TeraTermでTelnet接続を行う際は、新しい接続画面で「Telnet」を選択し、ポート23(または対象のポート)を指定します。
Telnet接続でよくあるトラブルが「文字化け」です。これはサーバー側とTeraTerm側の文字コード設定が一致していないために起こります。メニューの「設定」→「端末」から、漢字コード(受信・送信)をUTF-8やEUCなどに切り替えて試してみてください。また、入力した文字が見えない場合は「ローカルエコー」にチェックを入れると改善することがあります。
正しいIPアドレスとホスト名の取得方法
接続できない根本的な原因が「そもそもIPアドレスが間違っている」というケースも少なくありません。特にEC2の場合、インスタンスを停止・再起動するたびにパブリックIPアドレスが変わる(Elastic IPを設定していない場合)という特性があります。
昨日まで繋がっていたのに今日繋がらない、という場合は、まずAWSマネジメントコンソールで現在の最新のIPアドレスを確認しましょう。また、パブリックIPではなく、間違えて「プライベートIP」に対して外部から接続しようとしていないかも重要なチェックポイントです。
アドバイス:頻繁に接続するサーバーであれば、Elastic IP(固定IP)を割り当てるか、DNS名を利用して接続設定を固定化するのがおすすめです。
ネットワーク経路の導通テスト(PINGの活用)
TeraTermの設定を疑う前に、そもそもネットワークが繋がっているかを調べるには「PING」コマンドが有効です。Windowsのコマンドプロンプトを開き、ping [IPアドレス]を実行してみましょう。
もしPINGの応答が返ってこない場合、ネットワーク経路の遮断や、サーバーが完全にダウンしている可能性が高いです。ただし、セキュリティ設定でICMP(PING)を無効にしているサーバーも多いため、「PINGが通らない=SSHができない」とは限りませんが、疎通確認の第一歩として非常に有用な判断材料になります。
経路上のルーターやVPNの接続状態など、より広い視点でインフラ構成を見直すきっかけになります。
その他のTeraTerm接続エラーと対処法(unknown mac algorithm、application faultなど)
TeraTermのバージョンアップが必要なケース
TeraTermを使用中に「接続がすぐに切れる」「見たことのないエラーが出る」といった場合、まず確認すべきはバージョンです。長らくバージョン4系が主流でしたが、現在はバージョン5系がリリースされており、多くのセキュリティ脆弱性の修正や、新しい暗号アルゴリズムへの対応が行われています。
特にAmazon Linux 2023や最新のUbuntu、RHEL9などでは、古いTeraTermではサポートされていない鍵交換アルゴリズムを要求されることがあります。もし古いバージョンを使い続けているのであれば、最新の安定版をインストールし直すだけで、嘘のように問題が解決することがあります。
「unknown mac algorithm」などの暗号化方式エラー
SSH接続時に「unknown mac algorithm」や「no matching key exchange method found」といったエラーが出る場合があります。これは、クライアント(TeraTerm)とサーバーの間で、共通して利用できる暗号化ルール(アルゴリズム)が見つからないために発生します。
このエラーが出たときは、TeraTermの設定で「SSH」→「設定」を開き、優先されるアルゴリズムの順序を変更するか、TeraTerm自体を最新に更新して対応アルゴリズムを増やす必要があります。セキュリティの流行は常に変化しているため、ツール側も常に最新の状態に保つことが、こうした専門的なエラーを回避する一番の対策です。
豆知識:暗号アルゴリズムは安全性向上のため、古いものは次々と「非推奨」になり、新しいOSから削除されていきます。
TeraTerm自体のアプリケーションエラーへの対応
稀に、TeraTermを起動しようとすると「Application Fault」が発生したり、設定を保存しようとするとフリーズしたりすることがあります。こうした不具合は、設定ファイル(TERATERM.INI)の破損や、古い設定の引き継ぎ失敗が原因であることが多いです。
一度インストールディレクトリにあるTERATERM.INIをバックアップした上で削除し、初期設定の状態で起動するか試してみてください。また、複数のTeraTermを同時にインストールしている場合、パスの競合が起きることもあるため、不要なバージョンはアンインストールし、クリーンな環境を作ることも検討しましょう。
安定した動作こそが、日々の運用作業におけるストレスを減らすための重要なポイントです。
TeraTermでのPEM接続トラブル、AIアシスタントが解決の糸口を整理します
TeraTermでのPEMファイルを使ったSSH接続にお悩みですか?「Permission denied」エラーに遭遇し、解決策を探している皆様へ。この記事では、その原因と具体的な解決策を網羅的に解説しています。しかし、複雑な設定やエラーメッセージに直面した際、どこから手をつければ良いか迷うこともあるでしょう。そんな時、AIはあなたの強力なアシスタントとなり得ます。AIに相談することで、問題の切り分けや情報整理を効率化し、解決への最短ルートを見つける手助けをしてもらうことができるのです。
【思考の整理】記事のテーマをAIで整理・優先順位付けするコツ
TeraTermでのPEM接続問題に直面した際、AIはまず、問題の全体像を整理し、優先順位をつけるための視点を提供してくれます。例えば、「PEM接続でよくあるエラーとその原因をリストアップして、重要度順に並べてください」といった指示を出すことで、AIは記事の内容を分析し、あなたが最初に確認すべきポイントを提示してくれます。これにより、闇雲に設定を試すのではなく、論理的なアプローチで問題解決に臨むことが可能になります。
さらに、AIはエラーメッセージの解釈や、可能性のある原因の洗い出しも支援します。「『Permission denied』エラーが出た場合に考えられる原因を、EC2接続、SSH鍵ペア、パーミッション設定の観点から整理してください」のように具体的に質問することで、AIは関連情報を構造化し、あなたが次に取るべきアクションを明確にするための「思考のたたき台」を提供します。
【実践の下書き】そのまま使えるプロンプト例( を使用)
AIに具体的な指示を出すことで、あなた専用のトラブルシューティングガイドを作成できます。例えば、以下のようなプロンプトは、記事の内容を基に、あなたの状況に合わせた解決策のアイデア出しをAIに依頼するのに役立ちます。
AIアシスタントへ
あなたは経験豊富なネットワークエンジニアです。
TeraTermでPEMファイルを使ったSSH接続が「Permission denied」となる問題について、以下の情報に基づいて、解決策の候補を優先度順にリストアップしてください。
記事のサマリー:
TeraTermでPEMファイルを使ったSSH接続ができない、あるいは「Permission denied」エラーに悩んでいませんか?この記事では、その原因と具体的な解決策を、EC2接続やTelnet、その他のエラーまで幅広く解説します。
考慮してほしい点:
1. EC2インスタンスへの接続である可能性を考慮すること。
2. SSH鍵ペア(.pemファイル)のパーミッション設定に問題がある可能性。
3. SSHクライアント(TeraTerm)側の設定ミス。
4. サーバー側のSSH設定(sshd_configなど)の確認。
5. Telnet接続との関連性(もしあれば)。
出力形式:
原因とそれに対する具体的な解決策のペアで、各項目を簡潔に記述してください。
このプロンプトは、AIにあなたの状況を理解させ、記事で解説されている内容を、あなたの問題に特化させて整理させるためのものです。AIは、これらの指示に基づき、最も可能性の高い原因から順に解決策の候補を提示してくれるため、効率的に問題解決を進めることができます。
【品質の担保】AIの限界を伝え、人がどう微調整すべきかの知恵
AIはあくまで「思考のたたき台」や「情報整理の支援」を行うツールであり、万能ではありません。AIが提示した解決策は、あくまで一般的な可能性に基づいたものであり、あなたの特定の環境や微妙な設定の違いまでは考慮しきれない場合があります。そのため、AIの生成物を鵜呑みにせず、必ずご自身の状況に合わせて内容を吟味し、必要に応じて追加で調査や調整を行うことが不可欠です。
生成された解決策を試す前に、それが本当にあなたの問題に合致しているか、他に影響はないかなどを、ご自身の知識や経験に基づいて慎重に判断してください。AIは、あくまであなたの作業を補助し、発見を促す存在です。最終的な判断と実行は、常にあなたが主体となって行うことを忘れないでください。
まとめ
よくある質問
Q: TeraTermでPEMファイルとは何ですか?
A: TeraTermでSSH接続する際に、サーバーへの認証に使用する秘密鍵ファイルのことです。通常、AWS EC2などでインスタンスに接続する際に利用されます。
Q: 「Permission denied」エラーの原因として、PEMファイル以外に考えられることは?
A: PEMファイルのパーミッション設定が不適切、SSHキーペアがサーバーに正しく登録されていない、ユーザー名やIPアドレスの間違い、ファイアウォールによるブロックなども考えられます。
Q: EC2インスタンスへのTeraTerm SSH接続ができない場合、どこから確認すべきですか?
A: まずPEMファイルのパスと名前、インスタンスのパブリックIPアドレス、SSHポート(通常22番)が開いているか、インスタンスのセキュリティグループ設定などを確認しましょう。
Q: TeraTermのTelnet接続で、デフォルトのポート番号はいくつですか?
A: TeraTermのTelnet接続におけるデフォルトのポート番号は23番です。
Q: 「unknown mac algorithm」や「application fault」といったエラーは、どのように対処すれば良いですか?
A: これらのエラーは、SSHクライアント(TeraTerm)とサーバー側のSSH実装の互換性問題や、何らかの予期せぬ問題を示唆することがあります。TeraTermのバージョンアップや、サーバー側のSSH設定の確認、あるいはPuttyなどの他のSSHクライアントで試すことも有効です。