Ssh без пароля або аутентифікація з використанням шифрованих ключів, rizloff

Ssh без пароля або аутентифікація з використанням шифрованих ключів, rizloff

У вас є окремий сервер? Ходіть на нього через ssh? Пароль в цілях безпеки більше 10 символів? У день заходите на сервер n-ну кількість разів? Реально задовбало вводити кожен раз пароль на вхід? Мене теж :)






А вихід як завжди простий до неподобства, тому що все вже придумано до нас.

Ключі SSH. Або метод Identity / Pubkey

При використанні методу ідентифікації Identity / Pubkey виключається використання статичних паролів. Щоб кожен раз не набирати паролі, які можна перехопити кілоггерів ну або просто підглянути, ми будемо зберігати на диску пару ключів, які і будуть використовуватися для перевірки автентичності.

Ось деякі з позитивних моментів цього типу аутентифікації:

  • Ніхто не зможе увійти на сервер з вашим профілем, так як їм необхідно володіти приватним ключем і кодовою фразою.
  • Адміністратор сервера може взагалі прибрати пароль облікового запису, щоб виключити його дискредитацію.
  • Ви можете використовувати утиліту ssh-agent і він буде надавати аутентифікаційні дані за Вас.
  • Ви можете встановлювати певні обмеження, наприклад забороняючи перенаправлення портів, виконання певних програм і т.д.






Генерація SSH ключів. Або створення Identity / Pubkey

Для генерації пари ключів нам необхідно скористатися утилітою ssh-keygen.

localhost $ ssh-keygen -t rsa

Опцією -t rsa ми вказали тип створюваних ключів (можливі варіанти ключів - rsa1, rsa або dsa)

Налаштування сервера SSH

Всі вищевказані маніпуляції ми робили на локальній машині, тепер треба поднастроіть віддалену (сервер куди ми будемо логінитися).
Ключі є, тепер необхідно вирішити даний тип аутентифікації на сервері SSH. Спочатку визначимо тип аутентифікації - Pubkey або Identity, встановивши наступні настройки в sshd_config:

# Should we allow Identity # 40; SSH version 1 # 41; authentication?
RSAAuthentication yes

# Should we allow Pubkey # 40; SSH version 2 # 41; authentication?
PubkeyAuthentication yes

# Where do we look for authorized public keys?
# If it does not start with a slash, then it is
# Relative to the user's home directory
AuthorizedKeysFile .ssh / authorized_keys

Наведені вище значення дозволяють аутентифікацію Identity / Pubkey для протоколу SSH версії 1 і 2, і перевіряють наявність публічних ключів у файлі $ HOME / .ssh / authorized_keys.

Необхідно перевірити наявність цих рядків у файлі конфігурації / etc / ssh / sshd_config, якщо таких немає - додати і перезапустити сервіс.

/ .ssh / id_rsa.pub youruser @ remote.server.host







Схожі статті