Чтобы дополнительно обезопасить свой сервер, вы можете включить авторизацию по ключу (файлу) и отключить вход по паролю.
Эта дополнительная мера безопасности защитит ваш сервер от подбора пароля, так как подбирать будет нечего. Пароль использоваться не будет, а при попытке зайти без ключа, соединение будет разорвано.
Создаём ключи
Первое, что нужно сделать - это создать сами ключи. Вводим в поиск Windows слово Powershell:
ssh-keygen
Тут Powershell будет уточнять, какое название указать, парольную фразу. Просто нажимайте Enter:
Получим сообщение о том, что ключ создан:
Файлы ключа будут находиться по пути:
C:\Users\Admin\.ssh
Где Admin - ваш пользователь Windows.
Всего будет создано два ключа: id_rsa - это приватный ключ. Его нужно будет выбирать в программах для автоматического входа.
id_rsa.pub - публичный ключ. Его мы добавим на сервер.
Откройте файл id_rsa.pub в блокноте. Нужно будет скопировать ключ из него.
Настраиваем ключ на сервере
Подключаемся к серверу по SSH и проверяем наличие папки .ssh в папке /root командой:
cd /root/.ssh
Как видим, такой папки нет:
Сейчас просто копируйте и вставляйте команды.
Создаём папку .ssh командой:
mkdir .ssh
Выдаём папке .ssh права 700 командой:
chmod 700 .ssh
Переходим в папку .ssh:
cd /root/.ssh
Создаём файл authorized_keys:
touch authorized_keys
Выдаём файлу authorized_keys права 600:
chmod 600 authorized_keys
И теперь открываем редактирование файла authorized_keys:
cat >> authorized_keys <<EOT
Копируем всё содержимое из файла id_rsa.pub:
И вставляем в консоль через правую кнопку мыши. Получится так:
Нажимаем Enter. Теперь вводим слово EOT и снова нажимаем Enter:
Авторизацию по ключу настроили.
Теперь, если выбрать файл в программе и зайти на сервер - у нас попросит логин, а затем впустит на сервер. Без запроса пароля.
Но осталось отключить авторизацию по паролю.
Отключаем авторизацию по паролю
Для отключения входа по паролю нужно отключить параметр PasswordAuthentication.
Открываем файл настроек sshd_config командой:
nano /etc/ssh/sshd_config
Ищем пункт PasswordAuthentication yes:
Сохраняем изменения: Нажимаем Ctrl + O, затем Enter, затем Ctrl + X.
В новых версиях Ubuntu появился файл 50-cloud-init.conf в котором содержится строчка PasswordAuthentication yes. Этот файл нужно удалить, чтобы авторизация по паролю отключилась. Удаляем файл командой:
rm /etc/ssh/sshd_config.d/50-cloud-init.conf
И теперь перезагружаем сервис sshd командой:
service sshd restart
Все, авторизацию по паролю отключили. При попытке зайти без ключа получим сообщение:
Дополнительно