dropbear ssh-сервер не позволит мне подключиться

Я пытаюсь получить доступ ssh к моему маршрутизатору. В настоящее время у меня есть только доступ к telnet, и я установил dropbear и запускаю (используя opkg на USB-накопителе, подключенном к маршрутизатору).

С самого начала я создал секретный ключ и расшифровал его (поскольку dropbear еще не поддерживает это), а публичный:

cd .ssh openssl genrsa -des3 -out id_rsa openssl rsa -in id_rsa -out id_rsa ssh-keygen -y -f id_rsa > authorized_keys 

Я загрузил открытый ключ ( authorized_keys ) в /root/.ssh . Я помещаю файл на сервер Apache (на моем локальном компьютере) и загружаю его на маршрутизаторе с помощью wget (так что загруженный файл получает root как владелец / группа), а затем меняет разрешения на 0600 (то же самое для клиента, но с моим пользователем ).

Когда я пытаюсь получить доступ, он дает мне ошибку «Разрешить отказ (publickey)»:

 $ ssh -v -i ~/.ssh/id_rsa root@192.168.1.1 OpenSSH_7.4p1, OpenSSL 1.0.2j 26 Sep 2016 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to 192.168.1.1 [192.168.1.1] port 22. debug1: Connection established. debug1: key_load_public: No such file or directory debug1: identity file /home/chazy/.ssh/id_rsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /home/chazy/.ssh/id_rsa-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_7.4 debug1: Remote protocol version 2.0, remote software version dropbear debug1: no match: dropbear debug1: Authenticating to 192.168.1.1:22 as 'root' debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: algorithm: curve25519-sha256@libssh.org debug1: kex: host key algorithm: ssh-rsa debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha1 compression: none debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha1 compression: none debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: Server host key: ssh-rsa SHA256:1EFA75uwLp+4hBW0t3aaY05QjLzYd4jjDWoULAzF/8o debug1: Host '192.168.1.1' is known and matches the RSA host key. debug1: Found key in /home/chazy/.ssh/known_hosts:1 debug1: rekey after 4294967296 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: rekey after 4294967296 blocks debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /home/chazy/.ssh/id_rsa debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey). 

Если я неправильно понимаю, что в документации ( GitHub repo ) говорится:

Аутентификация открытого ключа сервера:

Вы можете использовать ~ / .ssh / authorized_keys так же, как и в OpenSSH, просто поместите ключевые записи в этот файл. Они должны иметь форму:

SSH-RSA AAAAB3NzaC1yc2EAAAABIwAAAIEAwVa6M6cGVmUcLl2cFzkxEoJd06Ub4bVDsYrWvXhvUV + ZAM9uGuewZBDoAqNKJxoIn0Hyd0Nk / yU99UVv6NWV / 5YSHtnf35LKds56j7cuzoQpFIdjNwdxAN0PCET / MG8qyskG / 2IE2DPNIaJ3Wy + Ws4IZEgdJgPlTYUBWWtCWOGc = кто-то @ имя хоста

Вы должны убедиться, что ~ / .ssh и файл ключа доступны только для записи пользователем. Остерегайтесь редакторов, которые разделяют ключ на несколько строк.

Dropbear поддерживает некоторые опции для записей authorized_keys, см. Справочную страницу.

Я сделал все, что он сказал, поэтому я не знаю, где проблема.

В документации упоминается другой способ:

Аутентификация открытого ключа клиента:

Dropbear может использовать открытый ключ auth как клиент, но вам придется преобразовать ключи стиля OpenSSH в формат Dropbear или использовать dropbearkey для их создания.

Если у вас есть закрытый ключ OpenSSH-стиля ~ / .ssh / id_rsa, вам нужно сделать:

dropbearconvert openssh dropbear ~ / .ssh / id_rsa ~ / .ssh / id_rsa.db dbclient -i ~ / .ssh / id_rsa.db

Dropbear не поддерживает зашифрованные ключи хоста, хотя может подключаться к ssh-agent.

Таким образом, это menas, что если я преобразую закрытый ключ в закрытый ключ, я могу использовать dropbear-клиент для подключения к серверу dropbear:

 dropbearconvert openssh dropbear id_rsa id_rsa.db 

Я собираюсь попробовать и посмотреть, работает ли это. Но в любом случае, открытый ключ сервера должен работать.

authorized_keys – это файл, а не каталог.

Пример файла authorized_keys:

  # Comments allowed at start of line ssh-rsa AAAAB3Nza...LiPk== user@example.net from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== john@example.net 

http://man.he.net/man5/authorized_keys

Также .ssh/ и все файлы в нем должны быть доступны и доступны только пользователю, в этом случае root .

мужчина dropbearkeys:

 NOTES The program dropbearconvert(1) can be used to convert between Dropbear and OpenSSH key formats. Dropbear does not support encrypted keys. EXAMPLE generate a host-key: # dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key extract a public key suitable for authorized_keys from private key: # dropbearkey -y -f id_rsa | grep "^ssh-rsa " >> authorized_keys