Перейти до вмісту
EuroVPSEuroVPS

Як використовувати SSH-ключі для автентифікації

FAQ EuroVPS

Оновлено 2 хв читання

Навіщо ключі?

Автентифікація за відкритим ключем працює на основі набору ключів, окремого для кожного користувача, який називається парою відкритого та закритого ключа. Відкритий ключ, згенерований на клієнтській машині 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
Інженер EuroVPS несе серверний вузол у залі дата-центру
Розмова з людьми, які доглядатимуть за вашою інфраструктурою.

Почнімо з вашої інфраструктури.

Трохи контексту допомагає нам почати правильну розмову.

Ми використаємо ваші дані, щоб відповісти на ваш запит. Політика конфіденційності