- Вопрос или проблема
- Ответ или решение
- Понимание Аутентификации с Использованием SSH в Ubuntu на Raspberry Pi
- Вопрос 1: Влияет ли наличие .ssh на тип аутентификации?
- Вопрос 2: Достаточно ли скопировать публичный ключ для доступа?
- Вопрос 3: Как заставить SSH использовать только Public Key Authentication?
- Вопрос 4: Нужно ли создавать нового пользователя для Public Key Authentication?
- Заключение
Вопрос или проблема
Контекст: 24.04 Ubuntu на Raspberry Pi
Пользователь по умолчанию – ubuntu. Для этого обсуждения давайте определим различные сценарии:
- каталог /home/ubuntu/.ssh не существует
- существует пустой каталог: /home/ubuntu/.ssh
- существует файл как /home/ubuntu/.ssh/authorized_keys
В1) Какие, если есть, сценарии требуют удаленной аутентификации пароля с использованием аутентификации по открытому ключу?
В2) Достаточно ли скопировать мой открытый ключ (id_rsa.pub) с MacBook через USB-накопитель на rPi: /home/ubuntu/.ssh/authorized_keys? или необходимо настроить другие параметры/установки для включения удаленного доступа по SSH (пароль или открытый ключ)?
В3) Что принуждает к удаленному доступу через аутентификацию по открытому ключу и исключает парольную аутентификацию?
Пользователь по умолчанию (ubuntu) имеет пароль, что позволяет доступ к терминалу через клавиатуру rPi
В4) Можно ли настроить пользователя по умолчанию (ubuntu) для удаленного доступа по SSH через открытый ключ? или нужно создать нового пользователя.
Чтобы отключить аутентификацию по паролю, сервер SSH должен иметь в своей конфигурации PasswordAuthentication no
, обычно в /etc/ssh/sshd_config
.
Существование каталога .ssh
в домашнем каталоге пользователя ничего не означает, как и наличие файла authorized_keys
в этом каталоге. В частности, это не принуждает использование аутентификации на основе ключей и не мешает или включает аутентификацию на основе пароля.
Если аутентификация по паролю отключена, то по умолчанию сервер SSH будет искать в ~/.ssh/authorized_keys
авторизованные ключи, при условии, что каталог .ssh
и файл имеют соответствующие разрешения (0700
для каталога и 0600
для файла).
.
Ответ или решение
Понимание Аутентификации с Использованием SSH в Ubuntu на Raspberry Pi
Контекст: Ubuntu 24.04 работает на Raspberry Pi, и пользователь по умолчанию — "ubuntu". В данном обсуждении рассматриваются различные сценарии, связанные с наличием директории .ssh
и её содержимым, влияющими на аутентификацию при удалённом доступе с помощью SSH.
Вопрос 1: Влияет ли наличие .ssh
на тип аутентификации?
-
Сценарий 1: Директория
/home/ubuntu/.ssh
отсутствует.В этом случае аутентификация через публичный ключ невозможна, так как отсутствует файл
authorized_keys
, где хранится разрешённый ключ. Если парольная аутентификация разрешена (по умолчанию), она будет использоваться. -
Сценарий 2: Существует пустая директория
/home/ubuntu/.ssh
.Даже если директория присутствует, без присутствия файла
authorized_keys
SSH не сможет использовать ключевую аутентификацию. Если aутентификация по паролю включена, она будет активна. -
Сценарий 3: Существует файл
/home/ubuntu/.ssh/authorized_keys
.При наличии правильных ключей в файле
authorized_keys
и при корректных разрешениях, SSH поддерживает аутентификацию по ключу. Но, если парольная аутентификация не отключена, можно также использовать пароль.
Вопрос 2: Достаточно ли скопировать публичный ключ для доступа?
Для настройки удалённого доступа через SSH с использованием публичного ключа необходимо:
- Копировать содержимое вашего
id_rsa.pub
на вашем MacBook в файл/home/ubuntu/.ssh/authorized_keys
на Raspberry Pi. - Убедиться, что у директории
.ssh
установлены права0700
, а у файлаauthorized_keys
—0600
. - Проверить, что параметр
PasswordAuthentication
задан какno
в файле/etc/ssh/sshd_config
для исключения парольной аутентификации.
Вопрос 3: Как заставить SSH использовать только Public Key Authentication?
Чтобы полностью исключить парольную аутентификацию:
- Отредактируйте файл конфигурации SSH
/etc/ssh/sshd_config
, установивPasswordAuthentication no
. - Выполните команду
sudo systemctl restart sshd
, чтобы применить изменения.
Вопрос 4: Нужно ли создавать нового пользователя для Public Key Authentication?
Не обязательно создавать нового пользователя для доступа по SSH с использованием публичного ключа. Можно использовать существующего пользователя "ubuntu", настроив его должным образом.
Заключение
Наличие директории .ssh
само по себе не определяет тип аутентификации. Лишь правильно настроенный файл authorized_keys
и изменения в конфигурации SSH могут обеспечить безопасный удалённый доступ с использованием публичных ключей. Пользователю "ubuntu" вполне можно настроить такой доступ, соблюдая описанные выше шаги.