Вход по SSH ключу + отключение пароля
Преступаем к следующему логическому шагу в настройке безопасности - заменить вход по паролю на вход по ключу, который мы сгенерируем. Подробнее по ссылке https://timeweb.com/ru/community/articles/kak-podklyuchitsya-k-serveru-cherez-ssh-po-parolyu-ili-klyuchu
После этого пункта Никто не сможет зайти на сервер без файла, который будет храниться у вас на компьютере.
Вы можете пропустить установку SSH ключа и перейти к 2FA защите - при входе будет требоваться пароль и затем шестизначный код от Google Authenticator. Но можно установить оба варианта.
Через консоль личного кабинета, допустим Vultr войти можно будет даже при таких настройках, поэтому для безопасности своего личного кабинета надо подключать 2FA авторизацию на сайте хостинг провайдера.
Шаги подключения входа по SSH keys
Генерируем SSH ключи. Закидываем в нужные места.
Проверка входа.
Отключение входа по паролю.
Генерируем SSH ключи
Выберите нужный вам гайд. Если ваш ПК на Windows - сразу переходите к пункту б) Генерация на ПК с Windows.
a) Генерация на ПК с Linux/macOS
На Unix есть встроенный генератор ключей.
Запускаем терминал и вводим:
ssh-keygenБудет возможность задать пароль для SSH ключей. Это дополнительно вас защитит от возможной кражи ключей. Главное записать пароль в сохранном месте.
Если не хотите задавать пароль - нажмите Enter
Готово, ключи созданы и хранятся в папке ~/.ssh/
~/.ssh/id_rsa - приватный key. Должен быть на ПК.
~/.ssh/id_rsa.pub - публичный key. Должен быть на сервере.
Закидываем публичный ключ на сервер
Можно конечно скопировать как это делается на Windows: 1. Зайдем на сервер, создадим и настроим репризиторию (вводим по очереди):
Теперь копируем в буфер обмена весь публичный ключ из файла id_rsa.pub.
Далее вводим на сервере
После чего, вставляем скопированный текст ключа, нажав shift+insert и завершаем процесс ввода кнопками ctrl+D.
Но в Unix системах это можно сделать легче, чем в Windows. Для этого откроем терминал и введем команду:
Где:
root - пользователь которым мы хотим заходить на сервер по ssh ключам.
ххх.ххх.ххх.ххх - ip адрес сервера.
Если вы хотите указать путь к public key, который нужно переместить на сервер. А так же ssh порт сервера (подробнее об этом в статье от alexandreyex):
Готово. Можно переходить к пункту проверки входа по SSH ключу.
б) Генерация на ПК с Windows
Нам понадобится 3 программы:
1) В графе “Type of key to generate” выбираем SSH-2 RSA (именно этот тип. Если в главном окне нет, то выберите в верхнем меню “Key”) 2048.

2) Теперь нажимаем Generate.
3) Чтобы ключ сгенерировался надо водить мышкой по экрану.
4) Сохраняем приватный ключь на ПК. Для этого жмем кнопку Save private key.
Закидываем публичный ключ на сервер
1. Зайдем на сервер, создадим и настроим директорию с файлом (вводим по очереди):
2. Теперь копируем в буфер обмена весь публичный ключ из файла публичного ключа, либо как показано на рисунке:

3. Далее вводим на сервере
После чего, вставляем скопированный текст ключа, нажав shift+insert и завершаем процесс ввода кнопками ctrl+D.

Готово. Публичный ключ вставлен в файл.
Проверка входа по SSH ключу.
Не только проверим, но и сохраним сессию для дальнейшей удобной работы.
1) На вкладке session вставляем IP и порт:

2) Переходим в раздел Connection — SSH — Auth и прописываем путь к приватному ключу, который мы создали и поместили в нужную нам папку:

3) Переходим опять в раздел Session --> Придумываем название сессии --> Сохраняем сессию --> И заходим в нее.

Если все успешно получилось, нам остается лишь запретить вход по паролю.
Отключение входа по паролю.
Убедитесь, что ключ надежно сохранен и вы его не потеряете, потому что по паролю вы больше не войдете (только через консоль в личном кабинете провайдера, либо через VNS).
Авторизуйтесь на сервере, затем откройте для редактирования конфигурационный файл /etc/ssh/sshd_config :
Найдите там строку PasswordAuthenticatin yes. Нужно установить ее значение в No:

Перезагрузим сервис:
Все готово! 🎉
Last updated