X11環境でplink(ssh)→sudo→リモートファイルのコピーが行われていません。

X11環境でplink(ssh)→sudo→リモートファイルのコピーが行われていません。

私はLinuxに初めて触れたので、ここで使用されている用語が少し慣れていないかもしれませんが、今やろうとしているのは、Windows PCでplinkを使用してLinuxサーバーにsshでアクセスしてsudo他のユーザーを実行することです。ローカルに使用してリモートの場所からファイルをコピーします。例えば、

WindowsシステムAでは: plink [email protected] "sudo -u user_a python /tools/copyfile.py remoteserverC.com:/a/b/c/filetocopy.txt /local/targetfile.txt"

  • そのうち、linuxserverBとRemoteserverCはどちらもLinuxです。
  • Pythonスクリプトは2つのパラメータを受け入れ、scpを呼び出してコピーします。最初はソースで、次はコピーするターゲットです。

私は得るでしょうDisconnected: Protocol error (Too many authentication failures for user_a). Child process (ssh) exited with code 78)

私はいくつかの事実を見つけました。

  1. plinkを使用して同じ呼び出しを実行しますが、/local'/local/'(linuxserverB)のファイルのみをコピーするようにソースとターゲットを変更しても問題はありません。この問題は、元の例のように RemoteserverC.com からファイルにアクセスしようとした場合にのみ発生します。

  2. 他のLinuxシステム(Linux D)では、plinkの代わりにsshで同じコマンドを使用して冗長なダンプを試みましたが、ほぼ同じエラーが発生することがわかりました。

    X11 connection uses different authentication protocol.
    X11 connection rejected because of wrong authentication.
    ..
    Unable to open display linuxserverB.com:123.0 Disconnected. Protocol error (Too many authentication failures for user_a)
    
  3. したがって、私はこの概念についてはよくわかりませんが、X11配信の問題が原因であると思います。基本的に私は以下を使用し-Xplink取得しようとします。
    Putty X11 proxy: wrong authorisation protocol attemptedUnable to open display linuxserverB.com:123.0 ... Disconnected: Protocol error (Too many authentication failures for user_a)
    
  4. xauthRemoteserverC.comとlinuxserverB.comに互いのディスプレイIDが含まれるように、RemoteserverC.comとlinuxserverB.comにディスプレイを追加しようとしましたが、問題は解決しません。

  5. また、WindowsコンピュータAにXMingをインストールしようとしましたが、xeyesplinkを正常に実行できました。

だから私は何が間違っているのか分かりません。私が試すことができる他のものがありますか? X11転送表示位置による問題ですか、それとも.XAuthority問題が原因で発生した問題ですか?

ベストアンサー1

はい、メッセージはリモートサーバーCからのようです。

plinkを使用してtestadminlinuxserverBに接続し、そこからスクリプトを実行していますsudo -u user_a。したがって、スクリプトは次のようになりますuser_a@linuxserverB

user_a@remoteserverCscpターゲット仕様にはユーザー名が含まれていないため、perlスクリプトに含まれているscpコマンドは、ユーザー名が間違っているか適切なキーがない場合に接続しようとします。もっと接続に使用可能なキーが、リモートサーバーが許可する認証の試行回数よりも大きい。 C)。

最初の質問は、user_a@remoteserverC言葉になりますか? RemoteserverCに存在しない場合は、レプリケーションuser_aソース仕様にリモートサーバーCのユーザー名を含める必要があります(例:)[email protected]:/a/b/c/filetocopy.txt

それでも問題が解決しない場合は、RemoteserverCのログを確認し、拒否された認証の試行とその理由を確認してください。おそらく、ユーザーの~/.ssh/authorized_keysファイルがRemoteserverCによって適切に保護されていないため、サーバーのデーモンは認証されたキーのリストをsshd無視した可能性があります。authorized_keysユーザー自身(またはルート)のみがファイルに書き込むことができるように、ファイルを保護する必要があります。この場合、ログメッセージはsshd権限が満たされていないファイルまたはディレクトリを示す必要があります。

おすすめ記事