MaaS, juju или брелок отвечают за ssh-keygen на узлах?

Моя система MaaS работает, зачисляет, завербовывает, поручает, выдает ордера, делает военные суды, развертывает и уничтожает. Кажется, что работает juju: загружается локально, устанавливает juju-gui, мои чары разворачиваются, юниты назначаются на службы, как я и ожидал, мои отношения отмечаются и хуки запускаются, и все хорошо отображается в juju-gui.

Чары, которые я использую, представляют собой совместимый контроллер (1) и ведомый (многие) набор. Контроллер должен rsync между собой и каждым из подчиненных. То, что происходит, - то, что ведомые отклоняют попытку, жалуясь, что они не могут открыть файл sseh_host_ed25519_key. (tail -f /var/log/auth.log) (я запускаю скрипт, но пока не очарован, я отправил его на контроллер как ubuntu и запускаю его оттуда)

Я читал, что Ответ довольно прост, выполните команду ssh-keygen -a на каждой машине. Сначала я запускаю это на контроллере, а затем на подчиненном. Я пытаюсь rsync, auth.log говорит, что соединение закрыто [preauth]. Я пытаюсь ssh_copy-id, но он получает "Отказано в доступе. (Publickey)", та же запись в auth.log.

Итак, мои вопросы: куда мне положить ssh-keygen, чтобы он заработал? Чего мне не хватает при раздаче ключей, которые мне достаются?

2
задан 31 March 2015 в 18:19

2 ответа

МААС удостоверится, что/you/имеют доступ к каждому узлу путем добавления ключа, что Juju говорит его (и что ключ является только открытым ключом). Единицы не имеют доступа SSH к себе дизайном (думайте о последствиях безопасности!).

, Если Вы хотели сделать его так, чтобы все единицы или сервисы могли получить доступ друг к другу, у Вас должен быть каждый, какие машины генерируют ключ SSH для пользователя, с которым Вы хотите соединить интерфейсом, тогда отправляют их общедоступный ssh-ключ друг другу через отношение. Таким образом, если бы это для ведущего устройства->, ведомая установка здесь - то, как Вы сделали бы что-то как этот:

master-charm/metadata.yaml

name: master-charm
provides:
  master:
    interface: my-charm-interface

slave-charm/metdata

name: slave-charm
requires:
  master:
    interface: my-charm-interface

Тогда в каждом очаровании, необходимо будет сделать что-то как следующее:

(master|slave)-charm/hooks/master-relation-joined

#!/bin/bash

if [ ! -f ~user-you-want-access/.ssh/id_rsa ]; then
  ssh-keygen -t rsa -N "" -f ~user-you-want-access/.ssh/id_rsa
  chown -R user-you-want-access.user-you-want-access ~user-you-want-access/.ssh
fi

relation-set public-key="$(cat ~user-you-want-access/.ssh/id_rsa.pub)"

(master|slave)-charm/hooks/master-relation-changed

#!/bin/bash

key="$(relation-get public-key)"

if [ ! -z "$key" ] && ! grep -q "$key" ~user-you-want-access/.ssh/authorized_keys; then
  echo "$key" >> ~user-you-want-access/.ssh/authorized_keys
  chown -R user-you-want-access.user-you-want-access ~user-you-want-access/.ssh
fi

Они просто предназначены, чтобы погасить, как Вы смоделировали бы что-то вроде этого. Вы могли сделать то же самое для доступа между самими узлами с помощью отношений однорангового узла.

2
ответ дан 31 March 2015 в 18:19

В ответе на Ваш общий вопрос облачный-init пакет ответственен за генерацию ключей хоста во время первой начальной загрузки на облачных изображениях.

В Вашем более конкретном случае, я не думаю, что он в настоящее время генерирует ed25519 ключи, но это, как было известно, не вызвало проблем ни для каких пользователей. Если это действительно вызывает проблему для Вас, необходимо отметить вариант использования более подробно в ошибка 1382118 . Почему Вам конкретно нужен ed25519 так или иначе?

1
ответ дан 31 March 2015 в 18:19

Другие вопросы по тегам:

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