SSH ключи, зачем нужны и где тут удобство
Никак не мог понять зачем их использовать. В чем удобство каждый раз редактировать какие-то конфиги и закидать что-то куда-то.
А я просто неправильно жил и выдумал себе несуществующие проблемы.
Зачем использовать ключи, когда есть пароли?
Все трубят одно и то же – безопаснее, удобнее, "так надо", но все это абстрактно и непонятно. Понятнее было бы, если эти люди говорили почему именно они используют ключи вместо паролей.
У меня все просто. Я использую ключи, чтобы делать вот так без пароля:
$ ssh servername
Так можно делать, если у вас linux/mac и есть специальная запись в ~/.ssh/config
, на винде у вас и так наверняка xShell, Putty или что-то такое, где можно указать путь к файлу ключей и суть будет та же.
У ключа тоже есть пароль. Не проще ли вводить пароль от самого сервера?
На самом деле пароль тоже выдуманная проблема. На Linux/Mac есть некий keychain, который запоминает пароль от ключа. На винде шеллы тоже умеют его сохранять. Так что достаточно один раз его ввести и больше не придется. Зато если ключ украдут, то воспользоваться им не смогут, даже зная от какого он сервера
Получится целый зоопарк ключей?
Так и было. На каждый новый сервер, на каждого нового пользователя я создавал отдельный ключ. Я искал софтины, которые помогли бы менеджить весь этот зоопарк и на удивление ничего не находил, кроме подавленного настроения.
bastillion и rtty позволяют заходить на сервера с любого устройства через браузер. rtty использую до сих пор для некоторых серверов, но проблему ключей решило совсем другое – я просто перестал создавать кучу ключей, оставив несколько специальных (личный, рабочий и для пет прожектов). Для удобства восприятия представьте, что он вообще 1 единственный универсальный.
Надо было сделать все один раз, а я делал на каждый сервер новый ключ
Универсальность не вредит безопасности?
Пока параноики сидят дома, чтобы на улице не поймать головой кирпич, обычные люди просто живут. Вероятность поймать кирпич, разряд молнии или даже быть сбитым машиной даже выше, чем украденный SSH ключ, но мы все равно выходим на улицу.
Но даже украденный ключ это еще не взломанный сервер. Придется как-то узнать от него пароль и для каких серверов он подходит. Все это несложно узнать если вы разработчик условной FileZilla / CyberDuck / xShell / Putty, правда велика вероятность, что вы за это сядете и оно того не стоит. А обычный вирус широкого назначения не справится с этой задачей.
Так что если кто-то получил ключ, который вы используете для сотни серверов, то что хакеру помешало бы украсть и все остальные? Думаю, тут стоит беспокоиться не про ключ, а про то, как его вообще украли и что помимо него может быть слита ваша коллекция хоум видео :)
Вкратце про создание и установку ключей
На любом устройстве через ssh-keygen получили публичный и приватный ключи, закинули их в какую-то папочку, скопировали содержимое публичного (.pub) ключа и дальше на всех серверах в ~/.ssh/authorized_keys
добавили скопированную строчку. Советую использовать этот алгоритм: https://t.me/uFeed/65
Может быть интересно:
- Альтернатива Putty, которую я использовал на Windows
- Авторизация в Steam через Telegram
- Менеджер паролей, который я использовал до Bitwarden
На главной странице сайта может быть еще чо-то интересное, так что не стесняйся посмотреть