Создание и использование пары RSA-ключей может быть полезно в тех случаях, когда требуется получать доступ по SSH без ввода пароля пользователя.
Пара ключей состоит из публичного и приватного ключа. Публичный ключ хранится на роутере, а приватный ключ - на устройстве пользователя.
Для генерации пары ключей и подключения по SSH можно использовать PuTTY - свободно распространяемое ПО.
При запуске программы PuTTYgen, необходимо выбрать тип ключа RSA и нажать на кнопку Generate.
Водите курсором в области под строкой состояния до ее полного заполнения.
В результате этого, будет показан ваш публичный ключ. Не закрывайте программу, ключ это окно понадобится в следующих шагах настройки.
Для установки приватного ключа на ПК, нажмите кнопку Save private key.
Появится уведомление о том, что вы не установили ключевую фразу защиты ключа. Ключевая фраза может быть установлена в полях Key passphrase и в Confirm passphrase, что повышает безопасность ключа, но потребует ввода пароля при каждой авторизации на роутере. Если все-таки не требуется установка пароля на ключ, нажмите Да и укажите путь на системном диске, по которому будет храниться ваш ключ.
В примере ключ назван "private_key.ppk", вы можете назвать по другому, но главное - файл должен иметь расширение .ppk. Сохраните файл приватного ключа по выбранному пути.
Далее подготовим роутер к работе, установив на него публичный ключ.
Откройте PuTTY-клиент на ПК, для соединения введите LAN-ip адрес роутера ( по умолчанию - 192.168.1.1 ), укажите порт подключения (по умолчанию - 22 ), нажмите Open для соединения.
Авторизуйтесь на роутере с помощью логина (по умолчанию - Admin) и пароля (по умолчанию - Admin).
Для того, чтобы роутер смог провести авторизацию по ключу RSA, требуется вписать публичный ключ в файл authorized_keys по пути /etc/dropbear.
По умолчанию этого файла нет, требуется его создать. Для создания файла введите команды:
Переход к нужному каталогу
Команда | Результат | |
---|---|---|
|
Переход к созданию и редактированию пустого файла
Команда | Результат | |
---|---|---|
|
Скопируйте текст сгенерированного ключа из PuTTYgen.
Для перехода к редактированию, нажмите клавишу "i" на клавиатуре. Вставьте скопированный ключ нажатием сочетания клавиш "Shift + insert".
Для того, чтобы авторизация на роутере всегда выполнялась по вписанному ключу, требуется изменить правило авторизации. Для этого введите команды:
uci set dropbear.@dropbear[0].PasswordAuth='off' uci set dropbear.@dropbear[0].RootPasswordAuth='off' uci commit dropbear |
Откройте новое окно программы PuTTY. Перейдите во вкладку Connection → Data, укажите имя пользователя, под которым планируется авторизация.
Перейдите во вкладку Connection → SSH → Auth и нажмите кнопку Browse для выбора приватного ключа, который PuTTY будет использовать при авторизации.
Перейдите на вкладку Session, укажите IP-адрес роутера, на котором ранее настраивали публичный ключ, укажите порт подключения. После всех указанных данных, укажите имя профиля для сохранения в поле Saved Sessions и нажмите Save (в примере профиль назвал RSASSH).
Теперь при двойном нажатии на профиль, будет открываться соединение по всем ранее заданным настройкам.
Строка "Authenticating with public key" говорит об использовании ключа, а не пароля для авторизации.
На скриншоте - успешная авторизация.