SSH авторизация по ключу является безопасным способом подключения к серверу — генерируется ключ состоящий из публичной и приватной частей.
Приватная часть остается на компьютере, публичная часть добавляется на сервер.
В случае если публичная и приватная части ключа подойдут друг к другу при подключении к серверу по ssh — авторизация пройдет без запроса пароля.
Стандартный способ подключения к серверу по SSH — по паролю. Вводится название протокола ssh, затем логин пользователя и через '@' IP адрес сервера или доменное имя.
Данный способ небезопасен потому, что пароль приходится где-то хранить и каждый раз вводить. Он может быть перехвачен злоумышленниками в любой момент.
SSH авторизация по ключу обеспечивает гораздо больший уровень безопасности. Если физический доступ к компьютеру, на котором сгенерирован ключ, не утрачен — несанкционированно воспользоваться ключом нельзя.
Также по ключу заходить на сервер гораздо удобнее поскольку не требуется каждый раз вводить пароль.
Ключ с типом шифрования RSA генерируем следующей командой:
ssh-keygen -t rsa -b 2048
Можно выполнить просто
ssh-keygen
Практически всегда стандартного шифрования достаточно
После ее выполнения возникнет диалог в котором будет предложено ввести парольную фразу (данный шаг можно пропустить дважды нажав Enter) и ввести путь для сохранения файлов публичного и приватного ключей.
Публичный ключ по-умолчанию сохраняется в ~/.ssh/id_rsa.pub
Если команда выполнялась пользователем root, то полный путь /root/.ssh/id_rsa.pub
Приватный ключ будет в /root/.ssh/id_rsa. С ним в дальнейшем никаких действий совершать не нужно.
SSH авторизация по ключу — настройка подключения
Далее отправляем на сервер публичный ключ. Адрес сервера для примера 123.123.123.123.
scp ~/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys_new
Затем подключившись к серверу по паролю добавляем ключ в authorized_keys
На сервере выполняем
cat /root/.ssh/authorized_keys_new >> /root/.ssh/authorized_keys
За счет cat выводим содержимое скопированного на сервера файла и дописываем его в /root/.ssh/authorized_keys.
В /root/.ssh/authorized_keys хранятся все публичные ключи ssh, с которыми к системе возможно подключаться.
После этого подключение по ключу становится возможно, пароль запрашиваться не будет
Для большей безопасности при работе с сервером всегда следует менять порт SSH
Если работа происходит с большим парком серверов удобно бывает настроить проброс SSH ключа, на сервера в этом случае можно будет заходить по цепочке без ввода пароля.