SSH авторизация по ключу


SSH авторизация по ключу является безопасным способом подключения к серверу — генерируется ключ состоящий из публичной и приватной частей.

Приватная часть остается на компьютере, публичная часть добавляется на сервер.

В случае если публичная и приватная части ключа подойдут друг к другу при подключении к серверу по ssh — авторизация пройдет без запроса пароля.



Стандартный способ подключения к серверу по SSH — по паролю. Вводится название протокола ssh, затем логин пользователя и через '@' IP адрес сервера или доменное имя.


Данный способ небезопасен потому, что пароль приходится где-то хранить и каждый раз вводить. Он может быть перехвачен злоумышленниками в любой момент.



SSH авторизация по ключу обеспечивает гораздо больший уровень безопасности. Если физический доступ к компьютеру, на котором сгенерирован ключ, не утрачен — несанкционированно воспользоваться ключом нельзя.



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



Ключ с типом шифрования RSA генерируем следующей командой:

ssh-keygen -t rsa -b 2048



Можно выполнить просто

ssh-keygen


Практически всегда стандартного шифрования достаточно



После ее выполнения возникнет диалог в котором будет предложено ввести парольную фразу (данный шаг можно пропустить дважды нажав Enter) и ввести путь для сохранения файлов публичного и приватного ключей.


SSH авторизация по ключу


Публичный ключ по-умолчанию сохраняется в ~/.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


ssh [email protected]


На сервере выполняем

cat /root/.ssh/authorized_keys_new >> /root/.ssh/authorized_keys



За счет cat выводим содержимое скопированного на сервера файла и дописываем его в /root/.ssh/authorized_keys.

В /root/.ssh/authorized_keys хранятся все публичные ключи ssh, с которыми к системе возможно подключаться.



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

ssh [email protected]



Для большей безопасности при работе с сервером всегда следует менять порт SSH


Если работа происходит с большим парком серверов удобно бывает настроить проброс SSH ключа, на сервера в этом случае можно будет заходить по цепочке без ввода пароля.

Сказать спасибо