私は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)
私はいくつかの事実を見つけました。
plinkを使用して同じ呼び出しを実行しますが、
/local
'/local/'(linuxserverB)のファイルのみをコピーするようにソースとターゲットを変更しても問題はありません。この問題は、元の例のように RemoteserverC.com からファイルにアクセスしようとした場合にのみ発生します。他の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)
- したがって、私はこの概念についてはよくわかりませんが、X11配信の問題が原因であると思います。基本的に私は以下を使用し
-X
てplink
取得しようとします。Putty X11 proxy: wrong authorisation protocol attemptedUnable to open display linuxserverB.com:123.0 ... Disconnected: Protocol error (Too many authentication failures for user_a)
xauth
RemoteserverC.comとlinuxserverB.comに互いのディスプレイIDが含まれるように、RemoteserverC.comとlinuxserverB.comにディスプレイを追加しようとしましたが、問題は解決しません。また、WindowsコンピュータAにXMingをインストールしようとしましたが、
xeyes
plinkを正常に実行できました。
だから私は何が間違っているのか分かりません。私が試すことができる他のものがありますか? X11転送表示位置による問題ですか、それとも.XAuthority
問題が原因で発生した問題ですか?
ベストアンサー1
はい、メッセージはリモートサーバーCからのようです。
plinkを使用してtestadmin
linuxserverBに接続し、そこからスクリプトを実行していますsudo -u user_a
。したがって、スクリプトは次のようになりますuser_a@linuxserverB
。
user_a@remoteserverC
scpターゲット仕様にはユーザー名が含まれていないため、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
権限が満たされていないファイルまたはディレクトリを示す必要があります。