Безпарольный SSH между пользователями postgres и barman в WSL2 – Не работает

Вопрос или проблема

Я установил Windows Subsystem for Linux на машине с Windows 10 Pro. Я установил два пакета программного обеспечения:

  1. Пакеты базы данных PostgreSQL, для которых “postgres” является пользователем.
  2. Пакеты Barman, для которых “barman” является пользователем.

Я пытаюсь установить “SSH-аутентификацию без пароля” между пользователями “postgres” и “barman” в WSL2 на моей машине с Windows 10 Pro. Я следовал этим шагам:

  1. Сгенерировал SSH-ключи (4096 бит) для обоих пользователей с помощью ssh-keygen -t rsa -b 4096.
  2. Скопировал открытый ключ пользователя “postgres” в файл authorized_keys пользователя “barman” по адресу /var/lib/barman/.ssh/authorized_keys.
  3. Повторил процесс для пользователя “barman”, скопировав их открытый ключ в файл authorized_keys пользователя “postgres”.

Однако, когда я пытаюсь подключиться от имени пользователя “barman” с помощью ssh postgres@, меня все еще запрашивают пароль пользователя “postgres”.

Вещи, которые я проверил:

  1. Разрешения файлов authorized_keys установлены на 600 (chmod 600 ~/.ssh/authorized_keys).
  2. SSH-сервис работает на WSL2.

Вопрос:

Какие дополнительные настройки могут быть необходимы для достижения “SSH-соединения без пароля” между этими пользователями в WSL2?

Ответ или решение

Для успешного установления "безпарольного SSH" соединения между пользователями PostgreSQL (postgres) и Barman (barman) в WSL2 (Windows Subsystem for Linux) на вашем компьютере с Windows 10 Pro, вам необходимо учитывать несколько важных аспектов. Давайте подробно разберем возможные причины неполадки и шаги для их устранения.

Проверьте ключи SSH

  1. Генерация ключей: Вы написали, что использовали команду ssh-keygen -t rsa -b 4096, которая создаст приватный и публичный ключи в папке ~/.ssh/. Убедитесь, что вы сгенерировали ключи для обоих пользователей и что они были созданы корректно. Для этого выполните:

    ls -l ~/.ssh

    Вы должны увидеть файлы id_rsa (приватный ключ) и id_rsa.pub (публичный ключ) для каждого пользователя.

  2. Копирование публичных ключей: Убедитесь, что вы корректно скопировали публичные ключи в файлы ~/.ssh/authorized_keys соответствующих пользователей:

    Для postgres:

    cat ~/.ssh/id_rsa.pub | ssh barman@localhost 'cat >> ~/.ssh/authorized_keys'

    Для barman:

    cat ~/.ssh/id_rsa.pub | ssh postgres@localhost 'cat >> ~/.ssh/authorized_keys'

Проверьте права доступа

  1. Правильные права на файлы и директории: Убедитесь, что права доступа к папке ~/.ssh и файлам в ней установлены корректно. Выполните следующие команды для обоих пользователей:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    Получение разрешений 700 для папки ~/.ssh и 600 для файла authorized_keys критически важно для SSH. Если эти настройки не выполнены, SSH может отклонить ключи.

Конфигурация SSH

  1. Настройка SSH Daemon: Убедитесь, что конфигурация SSH Daemon (обычно файл /etc/ssh/sshd_config) настроена для разрешения аутентификации по ключу. Проверьте настройки:

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    Если вы внесли изменения, не забудьте перезапустить SSH сервис:

    sudo service ssh restart
  2. Проверка SSH-клиента: Иногда полезно выполнить команду SSH с повышенной диагностикой. Используйте флаг -v для получения дополнительной информации о процессе аутентификации:

    ssh -v barman@localhost

    Это может дать представление о том, где может происходить сбой.

Возможные дополнительные шаги

  1. Проверка SELinux/AppArmor: Если у вас активированы SELinux или AppArmor, они могут блокировать вызовы SSH. Убедитесь, что эти службы настроены правильно или временно отключите их для проверки.

  2. Использование IP-адреса: Попробуйте использовать IP-адрес вместо localhost для подключения. Иногда могут возникать проблемы с разрешением хостов в WSL2.

Заключение

После выполнения всех вышеуказанных шагов проблема с "безпарольным SSH" соединением между пользователями PostgreSQL (postgres) и Barman (barman) в WSL2 должна быть решена. Если проблема все еще сохраняется, возможно, стоит проверить системные журналы (например, /var/log/auth.log) на наличие ошибок, связанных с SSH-аутентификацией. Удачи вам в решении этой задачи!

Оцените материал
Добавить комментарий

Капча загружается...