Puppet использует главный ключ ssh для git clone?

Я использую марионеточный модуль vcsrepo для синхронизации репозиториев git.

  # install git repo
  vcsrepo { "/home/repo":
    ensure   => present,
    provider => git,
    source   => "git@bitbucket.org:pk2klic/test.git",
  }

Он работает на главном сервере, где я сделал ключ RSA и загрузил открытый ключ в битбакет .

У меня много узлов агентов, поэтому было бы непрактично загружать ключи для каждого узла вручную.

Есть ли обходной путь, где я могу использовать главный ключ ssh для клонирования при применении моего файла марионетки? Или мне лучше попытаться создать автоматизированный процесс для создания новых ключей на каждом узле?

0
задан 1 May 2017 в 21:28
1 ответ

В идеале вам нужно создавать новые ключи для каждого узла. В этом весь смысл аутентификации SSH на основе ключей.

Если один сервер скомпрометирован, вы можете просто перестать доверять этому конкретному ключу, заменить его и двигаться дальше.

Теперь, если вы действительно ] хотел сделать это так, как вы предлагаете, с одним ключом, тогда вам нужно будет убедиться, что закрытый ключ находится на каждом хосте. Я оставлю это в качестве упражнения, чтобы вы разобрались, как это сделать.

Затем вы должны настроить ~ / .ssh / config , чтобы указать ключ, который вы хотите использовать при доступе к этому репозиторию. Вы можете сделать что-то вроде:

Конфигурация вашей марионетки:

  # install git repo
  vcsrepo { "/home/repo":
    ensure   => present,
    provider => git,
    source   => "git@bitbucket:pk2klic/test.git",
  }

И ~ / .ssh / config :

Host            bitbucket
    Hostname        bitbucket.org
    IdentityFile    ~/.ssh/id_rsa-bitbucket
    IdentitiesOnly yes

Обратите внимание на изменение, которое я сделал здесь в репозитории git. Я использую псевдоним bitbucket вместо настоящего имени хоста. Настоящее имя хоста задается в файле .ssh / config . Я предполагаю, что вы поместили свой общий закрытый ключ в ~ / .ssh / id_rsa-bitbucket

Таким образом, если пользователь просто нажимает / тянет это репо, он будет использовать конкретный ключ, но если они хотят клонировать свои личные данные из BitBucket, они могут просто использовать настоящий (скрытый), и он будет использовать только их личный SSH-ключ (как обычно).

2
ответ дан 4 December 2019 в 13:33

Теги

Похожие вопросы