Як організувати вхід на сервер по ssh-ключу для sudo-користувача?
Щоб організувати вхід на сервер по SSH-ключу для sudo
-користувача, виконай такі кроки:
1. Згенеруй SSH-ключ на клієнтському комп'ютері
Якщо ще не створений ключ, введи на своєму локальному комп’ютері:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
За замовчуванням ключ збережеться у:
~/.ssh/id_rsa
(приватний) і~/.ssh/id_rsa.pub
(публічний).Якщо ключ уже є — не треба створювати новий.
2. Скопіюй публічний ключ на сервер
Припустимо, ім'я sudo-користувача на сервері — username
, а IP сервера — 192.168.1.10
.
Використай:
ssh-copy-id username@192.168.1.10
Або вручну:
Зайди на сервер під користувачем:
ssh username@192.168.1.10
Створи директорію:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
На локальній машині скопіюй вміст
~/.ssh/id_rsa.pub
у файл~/.ssh/authorized_keys
на сервері:
cat ~/.ssh/id_rsa.pub | ssh username@192.168.1.10 "cat >> ~/.ssh/authorized_keys"
На сервері:
chmod 600 ~/.ssh/authorized_keys
3. (Рекомендовано) Заборонити вхід по паролю
Відкрий файл налаштування SSH:
sudo nano /etc/ssh/sshd_config
Знайди та змінити або додай рядки:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
Після змін:
sudo systemctl restart ssh
Увага: не вимикай
PasswordAuthentication
, поки не впевнишся, що ключ працює (перевір через нову SSH-сесію).
4. Тестування
З локальної машини:
ssh username@192.168.1.10
Якщо все налаштовано — вхід має відбуватись без пароля (або із запитом фрази-пароля, якщо ключ захищений).
Готовий допомогти з перевіркою або виправленням помилок, якщо щось не спрацює.
Last updated