Применение аутентификационного ключа SSH для сервера считается намного безопаснее ввода обычного пароля. В этой статье мы подробно расскажем обо всех преимуществах этого метода, а также покажем, как его настроить на сервере.
1. Усиленная защита
Например, 1024-битный ключ эквивалентен паролю из 12 случайных символов, а 2048- и 4096-битные ключи значительно повышают уровень защиты.
2. Стойкость к атакам
Ключи генерируются случайными алгоритмами, что делает их практически непредсказуемыми и исключает возможность взлома методом перебора.
3. Отсутствие передачи ключа по сети
Ключ всегда хранится локально на вашем компьютере Это практически исключает факт, что его перехватят злоумышленники.
4. Возможность многофакторной аутентификации
Вы также можете использовать кодовую фразу для шифрования ключа, что добавит еще один уровень безопасности.
5. Автоматизация процессов
Вам не понадобится каждый раз авторизовываться с помощью пароля.
Создание SSH-ключей
Для генерации SSH-ключа, выполните команду:
ssh-keygen
По умолчании ключи записываются в каталог ~/.ssh/ (для Windows — C:\Users\<user>\.ssh\). В процессе генерации можно задать парольную фразу для защиты приватного ключа.
Создание каталога для хранения ключей
Перед добавлением ключа на сервер необходимо создать директорию для него и настроить соответствующие права доступа:
ssh <root>@<server> "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
Настройка файла с ключами
Создаем или редактируем файл authorized_keys и задаем ему нужные права доступа:
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
Копирование ключа на сервер
Если используется Linux, можно воспользоваться стандартным инструментом:
ssh-copy-id <root>@<server>
В случае работы в другой операционной системе открытый ключ (id_rsa.pub) необходимо добавить в файл ~/.ssh/authorized_keys вручную.
Для установления соединения используется следующая команда:
ssh <root>@<server>
Если на приватный ключ назначен пароль для доступа, система потребует ее ввода для расшифровки ключа. Процесс аутентификации заключается в том, что SSH-клиент получает от сервера случайное сообщение, шифрует его и передает обратно. Сервер расшифровывает его и, если все данные совпадают, разрешает соединение.
При необходимости парольную фразу можно изменить или удалить без генерации нового ключа. Это можно сделать с помощью команды:
ssh-keygen -p -f ~/.ssh/id_ed25519
Далее система запросит текущий пароль (если он установлен), а затем предложит ввести новый или оставить поле пустым для его удаления.
SSH-agent позволяет кэшировать парольные фразы, что облегчает аутентификацию при множественных подключениях. Чтобы добавить ключ в агент, выполните:
ssh-add
Можно также задать время, в течение которого ключ будет храниться:
ssh-add -t <seconds>
При грамотной настройке SSH-ключи позволяют упростить процесс авторизации без ущерба для безопасности, а SSH-агент делает работу с ключами еще удобнее.