У меня есть несколько лабораторных сред, в которых компьютеры периодически перестраиваются, но мне нужно сохранять одни и те же ключи хоста ssh, чтобы люди, которые подключаются к лабораторным компьютерам (часто из своих собственных систем, не находящихся под моим управлением), не получали " host key changed "ошибки каждый раз, когда мы обновляем операционные системы лабораторных систем.
(Это похоже на вопрос Самый плавный рабочий процесс для обработки ошибок проверки хоста SSH? но в данном случае мы уже решили, что сохранение одних и тех же ключей при перестроении системы - лучшее решение для нас.)
Прямо сейчас у меня есть модуль Puppet с именем ssh
в котором есть следующий пункт:
file { "/etc/ssh/":
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/ssh/$fqdn",
recurse => true,
require => Package['openssh-server'],
notify => Service['sshd'],
}
На мастере марионетки каждый хост имеет свой собственный каталог, содержащий все файлы ключей хоста (ssh_host_key
, ssh_host_dsa_key
, ssh_host_rsa_key
и т. д.), как следует из file
определение ресурса. Моя проблема в том, что это похоже на смешивание кода и данных (поскольку все ключи хоста находятся внутри каталога модуля), и мне приходится делать еще одну фиксацию в Puppet VCS каждый раз, когда я добавляю новый набор хостов. Есть ли лучший способ управлять этими вещами?
Моя проблема в том, что это похоже на смешивание кода и данных (поскольку все ключи хоста находятся внутри каталога модуля), и мне приходится делать еще одну фиксацию в Puppet VCS каждый раз, когда я добавляю новый набор хостов. Есть ли лучший способ управлять этими вещами?
Вы можете настроить свой fileserver.conf
и в основном делитесь другим каталогом, который вы используете только для конфигурации ssh, если вы хотите отделить файлы марионеток от конфигурации / ключей SSH.
fileserver.conf
[sshconfig]
path /srv/puppet/sshconfig/
allow *
С конфигурацией, подобной приведенной выше, ваш манифест может выглядеть, как показано ниже, и файлы будут извлекаться из /srv/puppet/sshconfig/$fqdn/
.
file { "/etc/ssh/":
source => "puppet:///sshconfig/$fqdn",
...
}
Я предлагаю вам создать module
или script
куда вы загружаете свой хостинг в external
сервер, то вы даете sort -u
в этом файле, исключая любую повторяющуюся запись, затем после этого вы загружаете этот файл на все свои машины, конечно, заботясь о новых записях в этом ssh_known_hosts
слишком.