Как настроить аутентификацию по ключу SSH в Linux?

Поскольку атаки методом перебора становятся все более распространенными, лучше предотвратить попытки злоумышленников угадать ваш пароль. Вот почему так важно настроить аутентификацию с помощью ключей SSH на вашем Linux-сервере. Использование аутентификации на основе ключей намного безопаснее и практически никогда не может быть угадано кем-либо еще. Кроме того, она очень проста в настройке. Давайте приступим к этому.

1. Создание собственного SSH-ключа

На локальной машине необходимо сгенерировать новую пару ключей, чтобы настроить аутентификацию по SSH-ключу. Для этого выполним:

ssh-keygen

Вы можете нажимать клавишу Enter до тех пор, пока ключ не будет создан. Или, если вы хотите, вы можете установить пароль на шаге:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Запишите этот пароль, так как он потребуется для каждого доступа к серверу.

2. Скопируйте ключ на сервер Linux с помощью ssh-copy-id

После того как ключ скопирован, есть еще одна команда, с помощью которой вы можете скопировать ключ на сервер без необходимости редактировать/добавлять файл authorized_keys вручную. Для этого выполните следующую команду:

ssh-copy-id user@host -p port_number

Не забудьте изменить имя пользователя user на ваше настоящее имя пользователя, а host – на имя хоста или IP-адрес вашего сервера. Это автоматически скопирует ваш открытый ключ на ваш сервер, после чего вы можете попробовать зайти на сервер по ssh. У вас не должно появиться запроса на ввод пароля, и вы автоматически войдете в систему. Чтобы проверить это, выполните команду:

ssh user@host -p port_number

2.1. Копирование ключа при недоступности ssh-copy-id

В некоторых системах команда ssh-copy-id может быть недоступна, и в этом случае вам придется делать это через традиционное SSH-соединение. Для этого мы запустим следующую готовую команду. Она будет работать в системах Linux:

cat ~/.ssh/id_rsa.pub | ssh user@host -p port_number "mkdir -p ~/.ssh && cat >>~/.ssh/authorized_keys && chmod 700 -R ~/.ssh"

Только не забудьте изменить имя пользователя user на ваше настоящее имя пользователя, а host – на имя хоста или IP-адрес вашего сервера. Это должно сделать всю работу за вас – одна строка скопирует ваш локальный ключ на ваш сервер и вставит его в ваш файл authorized_keys.

После выполнения этой команды вы можете проверить его, попытавшись войти по SSH на ваш сервер:

ssh user@host -p port_number

Настройка аутентификации ключа SSH в Windows

В Windows нет команд, которые мы показали в шаге 2.1, поэтому здесь описано, что нужно сделать, чтобы настроить аутентификацию ключа SSH, если вы используете Windows. Шаги этого руководства предназначены для читателей, работающих под управлением Windows 11.

Сначала откройте приложение Terminal (не от имени администратора). Затем выполните команду ssh-keygen.exe, например, так:

PS C:\Users\rosehosting>ssh-keygen.exe

Вы получите несколько вопросов. Вы можете использовать каталог по умолчанию, а затем не задавать парольную фразу (вы также можете задать ее, если хотите, но вам придется вводить парольную фразу каждый раз, когда вы хотите аутентифицироваться с помощью своего ключа. Вот как выглядит наш вывод:

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\rosehosting/.ssh/id_rsa):
Created directory 'C:\\Users\\rosehosting/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\rosehosting/.ssh/id_rsa
Your public key has been saved in C:\Users\rosehosting/.ssh/id_rsa.pub

Теперь у вас есть сохраненная пара ключей. Теперь вам нужно скопировать открытый ключ (тот, что под именем id_rsa.pub ) на ваш сервер. Сначала распечатайте открытый ключ в терминале и скопируйте его:

PS C:\Users\rosehosting>cat .\.ssh\id_rsa.pub

Затем выполните SSH на вашем сервере:

PS C:\Users\rosehosting>ssh.exe user@host -p port_number

Выполните эту команду, чтобы создать папку, в которой будет храниться открытый ключ SSH:

mkdir -p ~/.ssh

После этого вы можете открыть новый файл с помощью удобного для вас текстового редактора. Мы будем использовать nano:

nano ~/.ssh/authorized_keys

Вставьте ваш открытый ключ в файл, сохраните и выйдите. Затем вам нужно обновить права доступа к новой папке и файлу:

chmod 700 -R ~/.ssh

После этого ваш доступ к ключу должен быть полностью настроен. Теперь вы можете выйти из сервера и попытаться войти снова. Вам больше не должно быть предложено ввести пароль.

4. Отключение проверки подлинности пароля на сервере (ВАРИАНТ)

Если вы хотите еще больше обезопасить свой сервер, вы можете отключить на нем аутентификацию по паролю. Это означает, что все пользователи системы должны будут использовать ключи ssh для входа в нее. Ключи SSH более безопасны, чем пароли, поскольку они обеспечивают более надежный и устойчивый метод аутентификации. В отличие от паролей, которые могут быть подвержены атакам перебора и другим уязвимостям, ключи SSH используют для аутентификации пару криптографических ключей. Это значительно затрудняет получение доступа неавторизованными пользователями, повышая общую безопасность. Кроме того, SSH-ключи избавляют от необходимости передавать пароли по сети, снижая риск перехвата и несанкционированного доступа.

Чтобы отключить проверку подлинности пароля, вам нужно отредактировать файл конфигурации SSH-сервера на вашем сервере:

sudo nano /etc/ssh/sshd_config

В нем вы должны найти строку PasswordAuthentication – установите ее в значение no:

PasswordAuthentication no

После завершения редактирования и закрытия файла вы можете перезапустить службу SSH, и все будет в порядке:

systemctl restart ssh

Вот и все! Вы успешно настроили свой сервер на использование SSH-ключей вместо паролей. Это сделает ваш сервер еще более защищенным от возможных атак методом грубой силы, от того, что кто-то узнает ваш пароль и т.д.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.rosehosting.com

Похожие статьи

Комментарии (0)