Вход в SSH без паролей с открытым ключом на маршрутизаторе с прошивкой Asus Merlin
Я пытаюсь включить SSH-вход без пароля на домашнем маршрутизаторе ASUS RT-AC68U, на котором установлена прошивка Asuswrt-Merlin 384.4_2 (самая последняя на момент публикации). Прочитав много постов и инструкций (включая этот), я все еще не могу заставить его работать.
Я использую PUTTYGEN для генерации пары ключей RSA-2048, сохраняя открытый ключ в ~/.ssh/authorized_keys
на маршрутизаторе, затем попытайтесь соединиться с PUTTY, который я ограничил только RSA. Когда PUTTY согласовывает шифрование сеанса, он предлагает принять открытый ключ, предоставленный сервером. Я ожидаю, что это будет мой ключ от ~/.ssh/authorized_keys
но вместо этого я всегда вижу собственный открытый ключ dropbear (от /etc/dropbear/dropbear_rsa_host_key
). Я знаю, что это тот, кто работает dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key
,
Разрешение на ~/.ssh
папка установлена на 700
, за ~/.ssh/authorized_keys
в 600
, Ключ сохраняется через веб-интерфейс маршрутизатора в правильном формате (т.е. ssh-rsa AAAA...5iYw== rsa-key-20180401
, без разрывов строк). Я пробовал оба root
а также admin
как пользователь SSH. Я также попробовал все с нуля, после сброса роутера до заводских настроек, с тем же результатом.
Я что-то пропустил? На данный момент, я думаю, мой единственный вариант - извлечь закрытый ключ Dropbear из /etc/dropbear/dropbear_rsa_host_key
и использовать его вместо того, чтобы генерировать свой собственный.
2 ответа
Вставьте свой открытый ключ в /etc/dropbear/authorized_keys
редактировать:
Я изначально думал, что Dropbear не читает ~/.ssh
хотя это и должно быть, поэтому я указал каталог по умолчанию /etc/dropbear/
, authorized_keys
не существует по умолчанию, так что это не так очевидно.
Перечитывая вопрос, я понял, что вы путаете пары ключей хоста с парами ключей входа.
нужно принять пару ключей хоста роутеров (/etc/dropbear/dropbear_rsa_host_key
) и поместите ваш открытый ключ на маршрутизатор в любом месте authorized_keys
файл, и вы должны быть в порядке.
В посте о ТБ выше отсутствует одна очень важная информация. Чтобы ssh работал на ausus merlin 386.3_2 и, скорее всего, на других выпусках, «необходимо включить раздел Jiffs в маршрутизаторе. Я включил только Jiffs, но не форматировал его, потому что там уже есть файлы конфигурации и т. д., и они могут стать еще одной головной болью, если удален.
Включите раздел Jiffs из asus merlin wui, он должен находиться над полем ssh под администрированием.
Не стесняйтесь публиковать эту небольшую информацию. Это похоже на отсутствие синтаксиса в каком-то сложном руководстве...