Аутентификация на основе SSH-ключей в Windows Subsystem for Linux [закрыто]

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

Подсистема Windows для Linux на Windows 10 Professional с двумя программными пакетами:

  1. База данных PostgreSQL (“postgres” — это пользователь)
  2. Barman (“barman” — это пользователь).

Я пытаюсь установить аутентификацию на основе ключей между пользователями “postgres” и “barman” в WSL2. Я выполнил следующие шаги:

  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.

Вопрос:

Какие дополнительные настройки необходимы для достижения аутентификации на основе ключей между этими пользователями в WSL2?

.

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

SSH-ключевая аутентификация в Windows Subsystem for Linux (WSL2)

Введение

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

Шаги по настройке SSH-ключевой аутентификации

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

1. Генерация SSH-ключей

Вы сгенерировали ключи с помощью команды:

ssh-keygen -t rsa -b 4096

Убедитесь, что ключи сгенерированы корректно и сохранены в стандартных директориях (~/.ssh/).

2. Копирование публичного ключа

Вы правильно скопировали публичный ключ пользователя "postgres" в файл authorized_keys пользователя "barman":

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'

3. Проверка прав доступа

Вы отметили, что права доступа на файлы authorized_keys установлены на 600 с помощью:

chmod 600 ~/.ssh/authorized_keys

Важно также установить правильные права на директорию ~/.ssh:

chmod 700 ~/.ssh

4. Проверка конфигурации SSH

Убедитесь, что конфигурация SSH разрешает использование ключевой аутентификации. Для этого нужно проверить файл конфигурации SSH, который обычно находится по пути /etc/ssh/sshd_config. Откройте его для редактирования (при необходимости с помощью прав sudo):

sudo nano /etc/ssh/sshd_config

Найдите и убедитесь, что следующие параметры установлены:

PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

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

sudo service ssh restart

5. Проверка логов SSH

Если после выполнения вышеуказанных действий вы всё ещё получаете запрос на ввод пароля, проверьте логи SSH для получения более детальной информации о проблеме:

sudo tail -f /var/log/auth.log

Это может дать информацию о том, почему аутентификация не проходит.

Заключение

После выполнения всех вышеуказанных шагов SSH-ключевая аутентификация между пользователями "postgres" и "barman" должна заработать. Если у вас продолжат возникать проблемы, проверьте наличие дополнительных настроек безопасности, таких как файрволлы или антивирусные программы, которые могут блокировать соединения.

Если вы соблюдали все рекомендации, а проблема сохраняется, возможно, имеет смысл пересоздать ключи и внимательно следить за процессом копирования публичных ключей.

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

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