У меня невероятно сложно заставить пересылку агента SSH эффективно работать для двух пользователей.
Оба могут без проблем подключаться к удаленным серверам, и похоже, что их агенты перенаправляются правильно (на сервере "echo $ SSH_AGENT_SOCK" возвращает ссылку на сокет, хранящийся в /tmp/ssh-blahblahbla/agent.blahblah) , но ни один пользователь не может подключиться по ssh к другим серверам после перехода на какой-либо другой сервер сначала через ssh, а также не может извлечь из репозитория git, размещенного и доступного через ssh.
Все это прекрасно работает для всех остальных пользователей. Единственное отличие, которое я заметил, заключается в том, что по какой-то необъяснимой причине после того, как эти проблемные пользователи подключились к первому серверу и попытались подключиться ко второму, подробные выходные данные ssh показывают следующее:
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/ubuntu/.ssh/identity ((nil))
debug2: key: /home/ubuntu/.ssh/id_rsa ((nil))
debug2: key: /home/ubuntu/.ssh/id_dsa (0x7ff42705ab40)
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/ubuntu/.ssh/identity
debug3: no such identity: /home/ubuntu/.ssh/identity
debug1: Trying private key: /home/ubuntu/.ssh/id_rsa
debug3: no such identity: /home/ubuntu/.ssh/id_rsa
debug1: Offering public key: /home/ubuntu/.ssh/id_dsa
Для успешных пользователей первые несколько строк ссылаются на сокет в / tmp из их $ SSH_AUTH_SOCK. Я сбит с толку, есть ли помощь в том, с чего начать?
Кроме того, для справки, это не обязательно зависит от ключа. Для одного пользователя я попытался создать два новых ключа (один другого типа, один с другим шифрованием), ни один из которых не работает.
Мысли?
Я обнаружил, что ни один из пользователей не имеет идентичности, несмотря на пересылку ключа агента.
Проверьте на локальном компьютере, используя:
ssh-add -L
Если вы видите: У агента нет личности.
Вам также может потребоваться ввести:
ssh-add
Это решило нашу проблему. Я надеюсь, что это поможет кому-то другому.
В одном случае у пользователя был локальный идентификатор, но это был не ключ, который он использовал, а альтернативный ключ, используемый в другой среде. Поскольку в этой среде он мог пересылать агент, как и ожидалось, у нас создалось впечатление, что проблема была на стороне сервера. Чтобы добавить конкретную идентичность, мы использовали
ssh-add ~/.ssh/his-alternate-keyfile