Як використовувати SSH-ключі для автентифікації
Навіщо ключі?
Автентифікація за відкритим ключем працює на основі набору ключів, окремого для кожного користувача, який називається парою відкритого та закритого ключа. Відкритий ключ, згенерований на клієнтській машині SSH, копіюється у файл authorized_keys на SSH-сервері, і відтоді сервер вважає цей ключ довіреним. Під час входу сервер надсилає виклик, який може підписати лише власник відповідного закритого ключа. Пароль ніколи не передається.
Як налаштувати автентифікацію SSH за ключем
Створіть каталог для ключів.
mkdir -p ~/.ssh
Обмежте доступ до каталогу .ssh лише для користувача SSH.
chmod 700 ~/.ssh
Згенеруйте пару ключів.
ssh-keygen -t rsa
Дотримуйтесь підказок на екрані, щоб інтерактивно створити ключі. Введіть пароль (необов’язково), щоб захистити закритий ключ. Якщо ви задасте пароль для доступу до закритого ключа, його запитуватимуть під час сеансу SSH.
Скопіюйте відкритий ключ у authorized_keys на сервері.
Можна скопіювати текст із файлу ~/.ssh/id_rsa.pub і вставити його у файл ~/.ssh/authorized_keys на сервері. Або скористатися утилітою ssh-copy-id у наведеному нижче форматі.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
Прапорець -i вказує файл ідентичності, тобто відкритий ключ.
Вимкніть автентифікацію за паролем і увімкніть автентифікацію за відкритим ключем.
Увійдіть на сервер як root, відкрийте файл /etc/ssh/sshd_config у будь-якому текстовому редакторі та переконайтеся, що директиви задано так, як показано нижче.
PubkeyAuthentication yes
PasswordAuthentication no
Якщо ключ призначений для користувача root, задайте PermitRootLogin prohibit-password, щоб root міг входити за ключем, але ніколи за паролем. Для нових ключів краще використовувати ssh-keygen -t ed25519.
PermitRootLogin prohibit-password
Перезапустіть службу SSH на сервері та спробуйте підключитися з клієнта. Якщо виникнуть проблеми з підключенням, використайте прапорець -vv у команді SSH.
ssh -vv root@yourhost.com
Поради
Власником каталогу та файлів має бути цей користувач, з правами chmod 600 ~/.ssh/id_rsa.
Shared FAQ page chrome (breadcrumb, dates, read time, «Читати далі», enquiry block, category labels): see INDEX-AND-CHROME.md. Translate once.
З FAQ EuroVPS.
Більше в категорії «Інструкції»Ваш наступний партнер з інфраструктури
Залишилося
запитання?
Розкажіть, що ви намагаєтеся зробити. Інженер прочитає і відповість.
+357 222 32280
Почнімо з вашої інфраструктури.
Трохи контексту допомагає нам почати правильну розмову.
