Как проверить, запущена ли переадресация агента SSH с удаленного сервера?

Как проверить, запущена ли переадресация агента SSH с удаленного сервера?

Локально я включил SSH-агент и добавил свой ключ:

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

У меня в ~/.ssh/config, это:

Host example
    User root
    HostName 123.45.678.912
    ForwardAgent yes

После запуска ssh exampleя успешно подключаюсь, и если я создам удаленное тестовое подключение к GitHub, я увижу, что я аутентифицирован с использованием моего пересланного ключа:

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.

Есть ли способ определить,на удаленной машине, если переадресация агента работает, без такого тестового соединения?

Этот ответпредложил использовать $SSH_AGENT_PID, но он пуст как на локальной, так и на удаленной машине.

решение1

Если переменная не установлена ​​на сервере, это означает, что переадресация агента не работает.

Рабочий пример пересылки.

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

Нерабочий пример

$ 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).

Связанный контент