전달을 사용한 원격 시스템에 대한 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
!
- 원격 호스트에 연결하는 데 사용하는 정보가
~/.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
- 구성에 라인이
<local_host>
gpg-agent
포함되어 있고 올바르며 작동하는지 확인하세요 (사용 시 핀을 요청해야 함 ). 예를 들면 다음과 같습니다.enable-ssh-support
pinentry-program
ssh
enable-ssh-support
pinentry-program /usr/local/bin/pinentry
- 귀하의 제품이 실행 중인지 확인하십시오
<local_host>
gpg-agent
. 사용 가능한 알려진 호스트에 연결해 보십시오. gpg-agent를 다시 로드하면 다음OK
상태가 반환됩니다.
% gpg-connect-agent reloadagent /bye
OK
사용하는 스위치가
ssh -A
해당 원격 호스트의 스위치와 동일한지 확인하세요ForwardAgent yes
.~/.ssh/config
매개변수 없이 항상 프록시를 전달하려면 두 번째 옵션을 사용하세요-A
.가장 중요한:확실하게 하다원격 호스트에
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_config
https://wiki.gnupg.org/AgentForwarding
그 이후로 어떤 경고 메시지도 받지 못했습니다.