OSBoy notes.

Записки обо всём...

Настройка SSH-доступа к OpenWrt по публичному ключу

Скачать клиент PuTTY и генератор ключей PuTTYgen можно здесь.

Чтобы получить беспарольный доступ к роутеру, нам необходимо создать пару ключей: публичный (будет храниться на роутере) и приватный (будет храниться на клиентском компьютере). Для этого будем использовать PuTTYgen.

Публичный ключ
Чтобы создать новый публичный ключ, в окне генератора ключей выбираем тип ключа и его размер. Я обычно выбираю SSH-2 RSA, 4096 bits. Затем нажимаем "Generate", после чего водим курсором в окне программы, пока не заполнится шкала, и ждём, пока не сгенерируется публичный ключ.
В случае, если у нас уже есть приватный ключ, жмём "File->Load private key" и выбираем наш файл ключа (с расширением .ppk).
Затем скопируем сгенерированный публичный ключ в файл /etc/dropbear/authorized_keys на роутере (весь ключ одной строкой, каждый добавляемый ключ с новой строки). 

puttygen
Создание публичного ключа в PuTTYgen

В этом же окне, ниже, отображается "key fingerprint" - это такой короткий идентификатор ключа, который нам будет сообщать удалённый сервер (то есть наш роутер), чтобы можно было убедиться, что мы подключились именно к нашему удалённому серверу, а не какому-либо другому хосту.

Приватный ключ
Если мы генерируем новую пару ключей, то нажимаем "Save private key" и сохраняем приватный ключ  (.ppk)  в надёжное место. Если компьютер домашний, и мы уверены, что кроме нас никто не получит доступ к нашему файлу ключа, можно просто сохранить его на жёстком диске в любом удобном месте. Если же компьютер может использоваться посторонними лицами, то лучше сохранить ключ на съёмном носителе, либо сохранить его в директории, недоступной для других пользователей.
Тут же можно ещё задать пароль для ключа ("Key passphrase"). При этом повысится безопасность SSH-доступа, но всё равно придётся вводить пароль при каждом подключении (от чего мы, собственно, и уходим). Можно конечно пользоваться программой Pageant, которая позволяет ввести все пароли только один раз при запуске, но это целесообразно, если мы постоянно администрируем несколько удалённых серверов и постоянно подключаемся то к одному, то к другому из них, в течении рабочего дня. Поскольку нам требуется настроить доступ всего лишь к одному домашнему роутеру - оставляем поля "Key passphrase" пустыми.

Дополнительные настройки dropbear
Для большей безопасности можно, также, отключить на роутере возможность SSH-аутентификации пользователя root (и остальных пользователей) по паролю (без приватного ключа).
C помощью UCI:

uci set dropbear.@dropbear[0].PasswordAuth=off
uci set dropbear.@dropbear[0].RootPasswordAuth=off
uci commit dropbear

Либо редактированием файла /etc/config/dropbear:

config dropbear
	option Port '22'
	option PasswordAuth 'off'
	option RootPasswordAuth 'off'

Так же, параметры доступа по SSH можно настроить через веб-интерфейс LUCI на вкладке "система->управление":

luci_ssh
Настройка параметров доступа по SSH в LUCI

Настройка клиента PuTTY
В PuTTY создаём сессию, после чего открываем вкладку "Connection->Data" и в пункте "Auto-login username" указываем нашего пользователя root (или другого, под которым будем логиниться):

putty_connection_data
Настройка пользователя для авто-логина в PuTTY

Затем переходим на вкладку "SSH->Auth" и в пункте "Private key file for authentication" указываем путь к нашему файлу ключа (.ppk):

putty_ssh_auth
Настройка доступа по ключу в PuTTY

После этого возвращаемся на вкладку "Session", не забываем сохранить настройки сессии и пробуем подключиться. При первом подключении PuTTY выдаст сообщение, что публичный ключ удалённого сервера отсутствует в реестре и отобразит его идентификатор (fingerprint). Если fingerprint соответствует нашему - можем добавлять удалённый сервер в реестр известных хостов, нажав "YES" в этом окне. При следующем подключении сессия откроется без всяких дополнительных вопросов.

Теги : openwrt, ssh, dropbear, putty, public key, публичный ключ

Комментариев: 0

Добавить комментарий

Отменить