Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

PuTTY X11プロキシ「サポートされていない認証プロトコル」エラーを修正する5つの方法

PuTTY X11は、リモートアプリケーションやサーバーの表示・操作をローカルマシンに転送することで、遠隔アクセスを実現する仕組みです。これにより、ユーザーは自分のPCからリモートマシンのGUIやSSHを直接操作できるようになり、快適なリモート作業が可能になります。

しかし、サーバーやアプリケーションに接続しようとした際に、「PuTTY X11 proxy: Unsupported authorization protocol(サポートされていない認証プロトコル)」というエラーが発生することがあります。このエラーの主な原因は以下の通りです。

  • Xauthorityファイルの所有権が誤っている(ファイルがロックされている場合も含む)
  • Xauthorityファイルが破損している
  • PuTTY側の設定に不備がある
  • ファイアウォールの認証設定が正しくない
  • SSH設定でX11フォワーディングが有効化されていない

本記事では、この「サポートされていない認証プロトコル」エラーを解消するための具体的な方法を順番に紹介します。

解決策1:Xauthorityファイルの所有権を変更する

Xauthorityファイルは、PuTTYを使用する上で最も重要なファイルです。このファイルには、接続認証のためのXサーバーのクッキーや資格情報が保存されています。Xauthorityファイルが存在しない、または現在のユーザーが所有者でない場合に、このエラーが発生します。以下の手順で解決しましょう。

  1. まず、次のコマンドでXauthorityファイルを確認し、所有者をチェックします。
    ls -al .Xauthority

    確認したところ、Xauthorityファイルの所有者がrootユーザーになっています。この状態でPuTTYからサーバーに接続すると、認証エラーが表示されるはずです。つまり、ユーザーがXauthorityファイルを制御できる状態にする必要があります。

  2. 次のコマンドを実行して、Xauthorityファイルの所有権をログインユーザーに変更します。
    注意:コマンド内の「linux-user」は、実際に使用するユーザー名に置き換えてください。
    sudo chown linux-user .Xauthority
  3. このエラーが発生すると、Xauthorityファイルがロックされていることがよくあります。ファイルがロックされていると、所有権を正しく設定しても問題は解決しません。そこで、ls -alコマンドを実行し、Xauthority-cおよびXauthority-lというファイルが存在するかどうかを確認してください。
    ls -al

    これらのファイルが存在する場合は、次のコマンドで削除します。

    rm .Xauthority-c .Xauthority-l

    注意:変更を反映させるには、マシンとPuTTY接続の両方を再起動してください。

  4. PuTTYサーバーに再接続し、「xclock」コマンドを実行して動作をテストします。

    認証エラーが正常に解消されました。

解決策2:破損したXauthorityファイルを作り直す

場合によっては、Xauthorityファイル自体が破損しており、そのためにサーバーへのアクセスが承認されないことがあります。この問題を解決するには、以下の手順を実行してください。

  1. ls -al」コマンドを実行して、Xauthorityファイルが存在するかどうかを確認します。
  2. 次のコマンドでXauthorityファイルを削除します。
    rm .Xauthority
  3. Xauthorityファイルを削除したら、PuTTYでサーバーに再接続します。すると、ディレクトリ内に新しいXauthorityファイルが自動的に作成されます。その後、「xclock」コマンドを実行してみてください。

    PuTTYへのログインに成功し、xclockにもアクセスできました。

解決策3:PuTTYの設定を見直す

PuTTYの初期設定も非常に重要です。設定時にミスをすると、このエラーの原因となることがあります。以下の手順で設定を確認・修正しましょう。

  1. PCでPuTTYを起動し、Default Settingsを選択してLoadボタンをクリックします。
  2. 左側のカテゴリからSSHタブを展開し、X11オプションをクリックします。X11Forwardingにチェックを入れ、「X display location」欄に「localhost:0」を入力します。
  3. 次に、接続先サーバーのIPアドレスまたはホスト名を入力します。ホスト名またはIPアドレスを設定したら、ポートを22(SSH用に設定したポート)に指定し、Default Settingsとして保存します。
  4. 「Open」ボタンをクリックすると、PuTTYのターミナル画面が開きます。

    ターミナル上で、接続先サーバーのユーザー名パスワードを入力してください。認証に成功すると、リモートサーバーへアクセスできます。

    これでPuTTYの設定が完了し、サーバーへの接続に成功しました。

解決策4:ファイアウォールでポート22を許可する

X11ForwardingPuTTYを使用するには、ファイアウォールでポート22を許可する必要があります。ここでは、UFWユーティリティを使ってファイアウォールを設定します。

  1. ターミナルで次のコマンドを実行し、SSHサーバーがファイアウォール経由でポート22にアクセスできるようにします。
    sudo ufw allow ssh
  2. 次のコマンドでファイアウォールを有効化します。
    sudo ufw enable
  3. 次のコマンドでファイアウォールのステータスを確認します。
    sudo ufw status

    22/tcpおよび22/tcp (v6)の両方が有効になっていることを確認できます。ここまでの手順が完了したら、PuTTY X11で再接続し、エラーが解消されたかどうかを確認してください。リモートシステムのログイン名とパスワードを入力して、サーバーにアクセスします。

    エラーが正常に解決され、リモートサーバーへのアクセスに成功しました。

解決策5:SSHサーバー設定でX11Forwardingを構成する

PuTTY X11の認証が拒否されるもう一つの原因は、SSHサーバー側の設定不備です。SSHサーバーを設定するには、ターミナルで次のコマンドを実行します。

sudo nano /etc/ssh/sshd_config
  1. このコマンドを実行すると、SSHサーバーの設定ファイルが開きます。
  2. 設定ファイル内でX11Forwardingを探し、コメントアウトを解除して有効化します。X11Forwardingの値を「yes」に設定してください。
  3. 続いて「X11DisplayOffset」を探し、こちらもコメントアウトを解除して、表示番号を「10」に設定します。
  4. さらに、「X11UseLocalhost」を有効にし、値を「no」に設定します。
  5. 同様に、「PrintMotd」設定を有効にして「no」にします。
  6. すべての設定が完了したら、CTRL+Oで保存し、CTRL+Xで設定ファイルを終了します。その後、PuTTYを使ってサーバーに再接続してみてください。
  7. サーバーへのログインに成功したら、PuTTYターミナルで次のコマンドを実行し、xclockにアクセスできるか確認します。
    xclock

    エラーが正常に解決され、リモートマシンへのアクセスに成功しました。

まとめ

「PuTTY X11 proxy: unsupported authorization protocol」エラーは、PuTTY経由でリモートサーバーにアクセスできない状態を指します。本記事では、このエラーが発生する主な原因と、それぞれに対応する解決策を詳しく解説しました。Xauthorityファイルの権限管理からSSHサーバーの設定まで、順番に試すことで問題を特定しやすくなりますので、ぜひ参考にしてください。

  1. LinuxでVLCの拡張機能をインストールする方法【完全ガイド】

    VLCメディアプレーヤーでは、Debian、Ubuntu、Arch、Fedoraなどのパッケージマネージャーを使わなくても、拡張機能・プラグイン・スキンをインストールできます。方法は非常にシンプルで、.luaファイルを所定のディレクトリにコピーするだけです。これらの.luaファイルは、ほとんどのバージョンのVLCで拡張機能として動作し、他のソフトウェアのテーマと同じように、ユーザー同士で自作の拡張機能を交換することもあります。プラグインには、単なるデザイン性の高いスキンもあれば、音楽マッチング、歌詞検索、動画への字幕付けといった実用的な追加機能を提供するものもあります。字幕は多くの場合、動画本

  2. 【解決済み】「npm: コマンドが見つかりません」エラーの対処法(Linux・macOS・Windows対応)

    NPM(Node Package Manager)は、JavaScriptのパッケージとその依存関係を管理するためのツールです。開発者の間で頻繁に利用される数多くのコードを提供しており、Windows、Linux、macOSといったすべての主要プラットフォームで広く使われています。Linuxでは「command not found(コマンドが見つかりません)」というエラーが頻繁に発生します。主な原因は、システムに必要なコマンドが存在しないことです。「Command npm not found」というエラーも同様で、Node Package Managerがインストールされていない状態で「npm