Ключи SSH служат средством идентификации вас при подключении к серверу SSH с использованием криптосистемы с открытым ключом и аутентификации вызов-ответ. Одним из непосредственных достоинств этого метода перед традиционной идентификацией с помощью пароля является то, что вы можете быть авторизованы на сервере без регулярной необходимости отсылать ваш пароль через сеть. Даже если кто-либо будет прослушивать ваше соединение, у него не будет возможности перехватить и взломать ваш пароль, поскольку фактически он никогда не передается. Также использование для идентификации ключей SSH устраняет риск, связанный с брут-форс (brute-force) атаками, за счет существенного уменьшения шанса атакующего угадать правильные учетные данные.
Создание SSH-ключей в Linux на примере CentOS
На клиентской стороне должен быть установлен пакет ssh (openssh)
yum -y install openssh-server openssh-clients
На клиентском компьютере в консоли выполните команду генерации ключей:
ssh-keygen
Введите путь файла, в который будут помещены ключи.
Каталог по умолчанию указан в скобках, в примере /home/user/.ssh/id_rsa. Если хотите оставить расположение по умолчанию, нажмите Enter.
Пароль (passphrase) используется для ограничения доступа к закрытому ключу. Пароль усложнит использование ключа третьими лицами в случае утраты. Если не хотите использовать секретную фразу, нажмите Enter без заполнения строки.
Успешно сгенерировав пару ключей, вы увидите уведомление:
RSA 2048
куча текста
Открытый ключ находится в файле /home/user/.ssh/id_rsa.pub, закрытый ключ — /home/user/.ssh/id_rsa.
Скопируйте открытый ключ на сервер в файл /home/user/.ssh/authorized_key. Одной строкой:
cat ~/.ssh/id_rsa.pub | ssh root@ip-адрес-сервера %22cat >> ~/.ssh/authorized_keys%22
Или откройте этот файл на сервере редактором vi и вставьте строку с открытым ключом после ssh-rsa.
Ещё один способ скопировать ключ в authorized_keys — команда echo, которая помещает строку в конец файла.
echo ssh-rsa строка-публичного-ключа >> /root/.ssh/authorized_keys
В виде дополнения можете отключить на сервере аутентификацию по паролю и использовать для аутентификации исключительно SSH-ключи.