「受信パスへのリモートポート転送に失敗しました」というメッセージで、gpg-agentを使用したSSH転送は失敗します。

「受信パスへのリモートポート転送に失敗しました」というメッセージで、gpg-agentを使用したSSH転送は失敗します。

転送を使用したリモートシステムへのSSH接続はgpg-agent失敗しますが、他のシステムでは機能します。ローカル資格情報を使用してリモートコンピュータでSSHを実行することはできませんgpg-agent

ssh -Avvv user@remotehost次の警告を表示します。

Warning: remote port forwarding failed for listen path /Users/user/.gnupg/S.gpg-agent

リモートホストに接続した後、利用可能な有効なSSHキーは表示されません。

% ssh-add -L
Could not open a connection to your authentication agent.

答え1

ssh -A私はmacOSでリモートで作業しながらこの経験をしました。しかし、転送したい他のオペレーティングシステムでも同じですgpg-agent

  1. リモートホストへの接続に使用する情報が~/.ssh/config正しいことを確認してください。また、あなたから接続するときに<local_host>このアドレス<remote_hostname>またはIPを使用していることを確認してください<local_host>ssh -A <remote_username>@<remote_hostname_or_ip>。気づくmacOSの使用/Users/usernameメインディレクトリいいえ/home/username!!既存の設定をコピーして貼り付けるときは注意してください。以下の例:
Host <remote_hostname_or_ip>
    HostName <remote_hostname_or_ip>
    User <remote_username>
    RemoteForward /Users/<remote_username>/.gnupg/S.gpg-agent /home/<local_host_username>`/.gnupg/S.gpg-agent.extra
  1. 設定にラインが<local_host> gpg-agent含まれており、正しく動作していることを確認してください(使用時にピンを要求する必要があります)。たとえば、次のようになります。enable-ssh-supportpinentry-programssh
enable-ssh-support
pinentry-program /usr/local/bin/pinentry
  1. 製品が稼働していることを確認してください<local_host> gpg-agent。利用可能な既知のホストに接続してみてください。 gpg-agentを再ロードすると、次のOK状態が返されます。
% gpg-connect-agent reloadagent /bye
OK
  1. 使用しているスイッチがssh -Aそのリモートホストのスイッチと同じであることを確認してくださいForwardAgent yes~/.ssh/configパラメータなしで常にプロキシを渡すには、2番目のオプションを使用します-A

  2. 最も重要な:確実にするリモートホストにSSH_AUTH_SOCK設定がありません。それ以外の場合、ローカルコンピュータはgpg-agentリモートコンピュータに転送されず、ローカル資格情報を使用しません!unset SSH_AUTH_SOCK変数を手動で設定しても大丈夫です。リモートホストシェル~/.profile(または類似)が作成され設定されてgpg-agentいると、SSH_AUTH_SOCKローカルホストプロキシソケットも上書きされ、機能しません。注釈処理:

#/usr/local/bin/gpg-agent --daemon
#SSH_AUTH_SOCK="$HOME/.gnupg/S.gpg-agent.ssh"; export SSH_AUTH_SOCK

答え2

Fedora 34サーバーに接続されているFedora 34ラップトップで、「受信パスへのリモートポート転送に失敗しました」という警告が表示されます。

私にとって役に立ったのは、指定されたファイルを削除してSSHセッションを終了して再接続することでした。

❯ gpg-agent --daemon
❯ ssh myserver
Warning: remote port forwarding failed for listen path /run/user/1000/gnupg/S.gpg-agent
[me@myserver] $ rm /run/user/1000/gnupg/S.gpg-agent
[me@myserver] $ exit
❯ ssh myserver
[me@myserver] $ gpg-agent # Verify that gpg-agent is working
gpg-agent[159856]: gpg-agent running and available

毎回これをしなければなりません。

次に、ここで提案されているようにStreamLocalBindUnlink yesサーバーにファイルを追加してみました。/etc/ssh/sshd_confighttps://wiki.gnupg.org/AgentForwarding

それ以来、何らかの警告メッセージが表示されませんでした。

関連情報