Como verificar se o encaminhamento do agente SSH está em execução, a partir do servidor remoto?

Como verificar se o encaminhamento do agente SSH está em execução, a partir do servidor remoto?

Localmente, ativei o agente SSH e adicionei minha chave:

  1. $ eval $(ssh-agent)
    Agent pid 80
    
  2. $ ssh-add
    Identity added: /c/Users/...../.ssh/id_rsa (.....@........)
    

No meu ~/.ssh/config, eu tenho isso:

Host example
    User root
    HostName 123.45.678.912
    ForwardAgent yes

Depois de executar o ssh example, estou conectado com êxito e, se fizer uma conexão de teste remota com o GitHub, posso ver que estou autenticado usando minha chave encaminhada:

root@example:~# ssh -vT [email protected]
OpenSSH_8.2p1 Ubuntu-4ubuntu0.5, OpenSSL 1.1.1j  16 Feb 2021
...
debug1: Will attempt key: .....@........ RSA SHA256:abc123/123456abcdefghi/abcdefg12+abcdefghij agent
...
debug1: Offering public key: .....@........ RSA SHA256:abc123/123456abcdefghi/abcdefg12+abcdefghij agent
debug1: Server accepts key: .....@........ RSA SHA256:abc123/123456abcdefghi/abcdefg12+abcdefghij agent
debug1: Authentication succeeded (publickey).
...
Hi ......! You've successfully authenticated, but GitHub does not provide shell access.

Existe uma maneira de determinar,na máquina remota, se o encaminhamento do agente funcionar, sem essa conexão de teste?

Esta respostasugerido usar $SSH_AGENT_PID, mas está vazio, tanto na máquina local quanto na remota.

Responder1

Se a variável não estiver definida no servidor, significa que o encaminhamento do agente não está funcionando

Exemplo de trabalho de encaminhamento.

$ echo "$SSH_AUTH_SOCK"
# Print out the SSH_AUTH_SOCK variable
> /tmp/ssh-6hNGMk10AZC/agent.89543

Exemplo que não funciona

$ echo "$SSH_AUTH_SOCK"
# Print out the SSH_AUTH_SOCK variable
> [No output]
$ ssh -T [email protected]
# Try to SSH to github
> Permission denied (publickey).

informação relacionada