LINUX.ORG.RU

OpenWRT, dropbear и авторизация SSH по ключу

 , , , ,


0

1

Имеются два роутера с OpenWRT. Соответственно, в качестве SSH сервера и клиента с обеих сторон dropbear. Хочу ходить с одного OpenWRT на другой по ssh с авторизацией по ключу, т.е. без пароля.

Делаю на клиенте:

root@openwrt-B:~# dropbearkey -y -t rsa -f /etc/dropbear/dropbear_rsa_host_key > /root/id_rsa.pub

root@openwrt-B:~# cat id_rsa.pub 
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwCHv43igWGIZbhKWd3s0Sv4aCif9i9BKcmbM3OqY/mY4bYECkYkgNOKJDta2YIEbtPcmOmqiAR29dIhdJiq7BwIv5aKF9g/XYAGrEZ5qzL6nVtsL4klCj2zHdF/+z3HAXHQDv/XnXgtjC6DIZoaOwRpj6leIeV9Zs46CC1gxYq0gJIh root@openwrt-B
Fingerprint: md5 23:fa:72:67:12:e9:c0:db:60:da:1f:13:f8:7e:72:58

root@openwrt-B:~# scp /root/id_rsa.pub openwrt-A:~
Делаю на сервере:
root@openwrt-A:~# cat id_rsa.pub > /etc/dropbear/authorized_keys

root@openwrt-A:~# chmod 0600 /etc/dropbear/authorized_keys

root@openwrt-A:~# ls -dl /etc/dropbear/ /etc/dropbear/authorized_keys
drwx------    1 root     root             0 Jan  1 00:25 /etc/dropbear/
-rw-------    1 root     root           321 Jan  1 00:25 /etc/dropbear/authorized_keys
Однако при попытке соединиться пароль всё равно запрашивается:
root@openwrt-B:~# ssh root@openwrt-A
root@openwrt-A's password:

Что я делаю не так?

P.S.: По инструкции на OpenWRT Wiki всё получается хорошо, но там описан другой вариант — доступ к OpenWRT, когда клиент — OpenSSH или PuTTY.

root@openwrt-B:~# dropbearkey -y -t rsa -f /etc/dropbear/dropbear_rsa_host_key > /root/id_rsa.pub

Зачем ты это сделал?

Сгенерируй нормальный ключ и указывай его ssh-клиенту при коннекте.

Deleted ()
Ответ на: комментарий от Deleted

Зачем ты это сделал?

Клиенту — dropbear'у не подходит нормальный ключ от OpenSSH (id_rsa), ему нужен id_rsa.db. Его можно создать с помощью dropbearkey, или сконвертировать из id_rsa.db утилитой dropbearconvert. Но в OpenWRT этой утилиты нет.

Пруф: http://www.ttylinux.net/Documents/multi/node32.html

OldManClone ★★ ()
Ответ на: комментарий от OldManClone

Ок, хорошо. Но зачем ты его назвал то так странно: /etc/dropbear/dropbear_rsa_host_key?

И таки укажи ключ ssh-клиенту.

Deleted ()
Ответ на: комментарий от Deleted

Заработало! Действительно, клиенту нужно было явно указать ключ. Т.е. вместо

root@openwrt-B:~# ssh root@openwrt-A
надо писать
root@openwrt-B:~# ssh -i /root/.ssh/id_rsa.db root@openwrt-A
Спасибо, Иван.

Но зачем ты его назвал то так странно: /etc/dropbear/dropbear_rsa_host_key?

Не я, такой ключ в dropbear есть по-умолчанию.

OldManClone ★★ ()
Ответ на: комментарий от OldManClone

Не я, такой ключ в dropbear есть по-умолчанию.

Вообще этот ключ для другого предназначен: для проверки подлинности сервера со стороны клиента.

Deleted ()
Ответ на: комментарий от Deleted

для проверки подлинности сервера со стороны клиента.

Вот в сторонах я, получается, и запутался... :(

OldManClone ★★ ()
Ответ на: комментарий от OldManClone

Клиенту — dropbear'у не подходит нормальный ключ от OpenSSH (id_rsa)

садись два!

snaf ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.