Назад | Перейти на главную страницу

Автологин SSH работает спорадически

Я устанавливаю 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, которую легко сделать, как только вы это сделаете.