"수신 경로에 대한 원격 포트 전달 실패" 메시지와 함께 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매개변수 없이 항상 프록시를 전달하려면 두 번째 옵션을 사용하세요 -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

그 이후로 어떤 경고 메시지도 받지 못했습니다.

관련 정보