7

Этот запрос не имеет прямого отношения к Git, но так как один из поддерживаемых транспортов Git - это SSH, и я пытаюсь использовать переадресацию агентов, я подумал, что хотел бы получить разъяснения (страницы руководства меня подвели)

Я пытаюсь автоматизировать развертывание программного обеспечения с помощью Capistrano, мне удалось приостановить некоторые болевые точки (предварительное заполнение известных хостов, перед развертыванием и т.д.), Но я остаюсь в следующей ситуации.

Моя команда входит на сервер под своими собственными учетными записями, все в группе developers , и umask - 002 . Ничто из вышеперечисленного не имеет отношения к делу, за исключением того, что цель состоит в том, чтобы убедиться, что моя команда всегда может работать как сама, не требуя привилегий суперпользователя.

Мы подключаемся к серверу example.com используя следующую ~/.ssh/config:

Host example.com
  User beaks
  ForwardAgent yes
  IdentityFile ~/.ssh/id_rsa_business

Первоначальный вход в систему работает отлично, ssh example.com открывает соединение с моей учетной записью, и все в порядке.

Проблема приходит на следующем этапе,

git ls-remote git@github.com:project/repository.git

Это использует вышеупомянутый транспортный уровень Git+SSH (см. Ссылку выше) - и обычно должен использовать мой ключ перенаправленного агента (который я проверял на наличие с env | grep SSH_AUTH_SOCK)

Ответ прост: «аутентификация не удалась (открытый ключ), другой конец неожиданно завис», я подозреваю, что агент для моего пользователя не используется, когда я github.com качестве общего пользователя git .

Я также не могу исключить странности EC2 (политики безопасности и т.д.) - но в этом случае я бы ожидал тайм-аут или сбой соединения. Я чувствую себя довольно уверенно, что я попал на github.com - и что меня не пускают, потому что мой агент не предлагает мой ключ beaks для своего пользователя git .

Рад добавить любую дополнительную информацию, если я что-то пропустил.

2 ответа2

6

Просто увидеть, что ssh-agent запущен, недостаточно. Посмотрите, присутствует ли нужный вам ключ. ssh-add -L Вы убедились, что этот ключ работает с другого хоста? Что ssh-add -L печатает в этой системе?

Вы также можете запустить GIT_TRACE=1 git ls-remote ... и он напечатает команду ssh, которую он запускает. Вы можете вручную запустить команду ssh и заставить ее работать, прежде чем вносить git в рисунок.

0

Никто на самом деле не ответил на этот вопрос, так что люди, приезжающие сюда, могут получить выгоду, увидев мой ответ на аналогичный вопрос. https://superuser.com/a/1141035/3376

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .