Локально я включил SSH-агент и добавил свой ключ:
-
$ eval $(ssh-agent) Agent pid 80
-
$ 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).