Я устанавливаю 20 серверов.
На каждом с конкретным пользователем я создал ключ dsa.
я сделал cat key.pub
с каждого сервера на ~/.ssh/authorized_keys
первого сервера
Я проверил, что все серверы могут войти без пароля на первый сервер.
Используя марионетку, я скопировал .ssh/authorized_key
с первого сервера на все остальные.
Разрешения те же, 600
Я не могу войти автоматически; он по-прежнему работает от серверов к первому, но не к любому другому. Я вхожу в систему как пользователь, ssh на другие серверы - и он запрашивает у меня пароль.
Я перезапустил службу sshd, но безуспешно. / etc / ssh / sshd_config одинаков на первом сервере и на всех остальных.
Это RHEL6.
Любые идеи? Я сделал что-то не так?
Это файл марионетки; теперь работает - рут был как 775
file {"/home/user":
owner => user,
group => user,
ensure => directory,
mode => 755,
}
file {"/home/user/.ssh":
owner => user,
group => user,
ensure => directory,
mode => 700,
}
file {"/home/user/.ssh/authorized_keys":
owner => user,
group => user,
ensure => file,
mode => 600,
source => "puppet://puppet/files/user_sshkeys.txt";
}
Разрешения ~/.ssh
каталог должен быть 700
. Разрешения ~/.ssh/authorized_keys
файл должен быть 600
. Вероятно, вы захотите ограничить права записи в домашний каталог пользователя для пользователя.
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Вместо того, чтобы использовать cat
попробуйте ssh-copy-id
команда, поскольку она заботится об этих разрешениях.
Вы можете показать нам, как выглядят ваши файловые директивы Puppet? Наверное, там это можно исправить.
Puppet (на момент написания этой статьи, версия 3.1.1) имеет тип, называемый ssh_authorized_key
. Используя это, вы можете просто отправить свой ключ на свой компьютер (-ы), и он позаботится о разрешениях и тому подобном за вас.
Вот что у меня в конфиге:
ssh_authorized_key { 'root pub key':
ensure => present,
key => "yourkeyhere",
name => "name@server",
user => "user",
type => "ssh-rsa",
Вы можете просмотреть соответствующую документацию Вот.
В остальном есть модули, написанные другими, которые делают примерно то же самое, но предоставляют некоторые дополнительные параметры, поскольку есть несколько ограничений в отношении того, что ssh_authorized_key
типа делает.
То, что вы пытаетесь настроить, называется «аутентификацией на основе хоста». Выполните поиск в Интернете, и вы найдете то, что вам нужно. Это сложная тема SSH, которую легко сделать, как только вы это сделаете.