Использование переадресации агента ssh с солевыми состояниями

Итак, в моем бродячем файле есть следующее:

config.ssh.forward_agent = true

И следующее солевое состояние:

git+ssh://[email protected]/xxx/repo.git:
  git.latest:
    - rev: rest
    - target: /home/vagrant/src

Однако я получаю ошибку открытого ключа при выполнении этого солевого состояния.

Раздражает то, что если я вручную выполняю git clone git+ssh://[email protected]/xxx/repo.git из своего экземпляра, все работает нормально. Любые идеи?


person Michael    schedule 12.03.2014    source источник
comment
Можете ли вы проверить, что пользователь, выполняющий клонирование git, является тем же пользователем, которого соль использует для выполнения команды (соль обычно использует root)?   -  person Jason Zhu    schedule 13.03.2014
comment
Привет, Джейсон, ты был прав, говоря, что это root, однако я добавил - user: vagrant в конфигурацию состояния соли, которая соответствует пользователю git clone. К сожалению, результат тот же...   -  person Michael    schedule 13.03.2014
comment
Я думаю, что это может быть не тот файл закрытого ключа, который вы могли бы ввести. Можете ли вы попробовать указать закрытый ключ для использования с помощью параметра идентификации.   -  person Jason Zhu    schedule 13.03.2014
comment
На самом деле это мой обходной путь на данный момент. Я должен использовать управляемые файлы, чтобы вытащить ключи вручную. Однако очевидно, что это не идеально, так как требует дополнительной настройки от разработчика при настройке среды с помощью vagrant. Переадресация агента должна решить эту проблему, верно?   -  person Michael    schedule 13.03.2014
comment
Соль может дезинфицировать переменные окружения, а работа ssh-agent зависит от них. Я подозреваю, что.   -  person Dan Garthwaite    schedule 05.12.2014


Ответы (2)


Находится ли bitbucket.org в файле known_hosts?

git+ssh://[email protected]/xxx/repo.git:
  git.latest:
    - rev: rest
    - target: /home/vagrant/src
    - require:
      - ssh_known_hosts: bitbucket.org
person scthi    schedule 11.08.2015

У меня было аналогичное требование с капистрано. Я использовал ssh-forwarding для проверки репозитория с github на удаленный сервер. Мне пришлось добавить хост в файл ~/.ssh/config на моей машине, как показано ниже.

vim ~/.ssh/config

Содержание

Host <some host or IP>
   ForwardAgent yes

Я использовал * в качестве хоста, чтобы он работал с любым сервером.

person bitkot    schedule 13.08.2015