раздел 03
Доступ по SSH через ключи
Что это
SSH - протокол, по которому вы заходите на сервер из терминала и управляете им удалённо. Вместо пароля используют пару SSH-ключей - два файла, которые работают только вместе:
- Приватный ключ - остаётся у вас на компьютере. Его никому не показывают. Это как ключ от вашей квартиры.
- Публичный ключ - кладётся на сервер. Его можно показывать кому угодно. Это как замок, который открывается только вашим ключом.
Отсюда выражение «2 ключа»: приватный + публичный. Вместе они образуют пару.
Зачем
Пара ключей и проще, и безопаснее пароля:
- Безопаснее. Пароль можно подобрать перебором - серверы в интернете брутфорсят круглосуточно. Ключ подобрать практически невозможно.
- Удобнее. Один раз настроили - заходите одной командой, без ввода пароля каждый раз.
- Приватный ключ не покидает ваш компьютер. На сервер уезжает только публичная половина, которой нечего «украсть».
Как добавить ключ при создании сервера
- Сначала сгенерируйте пару ключей у себя (см. подстраницу ниже).
- При создании сервера в Selectel в разделе доступа выберите «SSH-ключ» и вставьте содержимое публичного ключа (то, что начинается с
ssh-ed25519илиssh-rsa). - Selectel сам положит этот публичный ключ в нужное место на сервере.
Первый вход
Когда сервер создан и вы знаете его IP, заходите из терминала:
ssh root@IP
Где IP - публичный адрес сервера из панели. Если ключ добавлен правильно, вы попадёте на сервер без пароля. При первом входе терминал спросит, доверяете ли вы серверу - отвечайте yes.
Пример
Сгенерировали ключ, вставили публичную часть при создании сервера с IP 5.35.5.122, в терминале набрали ssh root@5.35.5.122 - и оказались внутри сервера. Готово.
Антипаттерны
- Вставить приватный ключ вместо публичного. Грубая ошибка безопасности. На сервер - только
.pub. - Оставить вход по паролю включённым. Боты будут долбить перебором. После настройки ключа пароль для root лучше отключить.
- Потерять приватный ключ. Без него вы не зайдёте. Храните и бэкапьте его.