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

Я могу показать пример с wget. Попробуем получить список со всеми изображениями, а затем (при необходимости) скачать все изображения с этого сайта

1) Скачиваем индексную страницу с помощью wget

wget -k https://www.pexels.com/

k Опция (очень важная) используется для преобразования локальных ссылок в глобальные.

2) Теперь мы будем добывать необходимую информацию. Во-первых, отбрасываем фильтр grep img, чтобы получить только строки с тегом . Второй grep использует regexp для получения адресов ссылок. sed вырезает аргументы в ссылках после символа ?. Наконец, сохраните наши ссылки в файл links.txt

cat index.html | grep img | grep -Po 'src="\K.*?(?=")' | sed 's/\?.*//' > links.txt

3) Теперь мы можем легко загрузить все изображения с помощью

wget -i links.txt

Вы можете загрузить и обработать ссылки с помощью одного набора труб, используя curl вместо этого, как запрошено:

curl https://www.pexels.com/ | grep img | grep -o src="\"http.*" | grep -o "http.*\"" | sed 's/\?.*//' > links.txt

5
31.10.2018, 13:52
6 ответов

man 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
1
27.01.2020, 20:37

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 .

2
27.01.2020, 20:37

Краткий ответ :Возможно, вы используете OpenWrt, и вам нужно поместить свой открытый ключ в /etc/dropbear/authorized_keysвместо /root/.ssh/authorized_keys.

Длинный ответ:

Репозиторий GitHub, на который вы указываете, поддерживается автором dropbear; в нем говорится, что ~/.ssh/authorized_keysработает, и, согласно GitHub, это работает как минимум 14 лет. Глядя на код в svr -authpubkey.c , он добавляет /.ssh/authorized_keysв «pw _dir».

Однако у меня была та же проблема, что и у вас, и я обнаружил, что двоичный файл, представленный в OpenWrt 18.06.1, на самом деле открывает /etc/dropbear/authorized_keys. Использование этого файла работает для меня.

Это поведение задокументировано в документации OpenWrt .

Так почему же?

Учитывая, что приведенный выше код не может создать это имя файла сам по себе (.sshотсутствует )и нигде нет символической ссылки .ssh, я запустил stringsв двоичном файле. Это показало, что /etc/dropbear/authorized_keysупоминается явно, непосредственно перед %s/.ssh/authorized_keys, которого можно ожидать от кода GitHub. Я пришел к выводу, что бинарный файл OpenWrt не скомпилирован из тех же источников... и действительно, OpenWrt исправляет исходный код этим патчем . Он изменяет используемый файл на /etc/dropbear/authorized_keys, если (и только если )целевой пользователь является root.

Поскольку вы упомянули opkg, я полагаю, что вы также используете OpenWrt, и это ваша проблема. Я добавил тег OpenWrt к вашему вопросу.

7
27.01.2020, 20:37

Вам необходимо создать ключ ssh с помощью инструмента dropbearkey. RSA _KEYFILE=/etc/dropbear/dropbear _rsa _хост _ключ DSS _KEYFILE=/etc/dropbear/dropbear _dss _хост _ключ

dropbearkey -t dss -f $DSS _KEYFILE

dropbearkey -t rsa -f $RSA _KEYFILE

Затем перезапустите демон dropbear. Затем попробуйте подключиться, должно получиться.

0
27.01.2020, 20:37

Некоторые подсказки, которые могут помочь вам подключиться с помощью PKI к Dropbear, это протестированный контейнер на основе пакетов Alpine Linux 3.12, подключающийся из клиента OpenSSH.

  1. Пользователю нужна оболочка.
  2. Пользователю не требуется пароль для входа.
  3. Пользовательский~не должен быть доступен для записи группе/миру (, т.е. chmod 755по крайней мере; вы должны использовать 700для домашних каталогов ).
  4. Пользователь ~/.sshи~/.ssh/authorized_keysдолжен быть владельцем -, доступным только (, например. 700в каталоге и 600в файле ).
  5. Там должен быть доступный для записи /tmpкаталог
  6. Записи authorized_keysимеют тот же формат, что и OpenSSH.

Я создаю контейнеры, используя файлы Cherry -выбранные из пакетов alpine; У меня есть образ ~размером 2 МБ, к которому я могу подключиться по ssh, если соблюдены все вышеперечисленные требования.

0
06.12.2020, 10:50

Я только что наткнулся на этот вопрос, когда искал причины, по которым подключение через dropbear к моему серверу внезапно перестало работать (работало несколько месяцев, но использовалось лишь изредка каждые пару недель ).

решение/объяснение, которое я, наконец, нашел, было в сообщении debug1: send_pubkey_test: no mutual signature algorithmс повышенным вниманием к попытке подключения ssh моих клиентов, что привело меня к статье по устранению неполадок с битбакетом .

в этой статье упоминается Алгоритм RSA быстро устаревает в операционных системах и клиентах SSH из-за различных уязвимостей в системе безопасности[...] в качестве причины и приводится список возможных обходных путей:

  • добавление PubkeyAcceptedKeyTypes +ssh-rsaв файл конфигурации клиента -(используйте это только как временный обходной путь , так как это потенциально небезопасно!)

  • используйте алгоритм/ключи ECDSA или ED25519. теперь, когда в моей системе присутствует версия dropbear, я мог использовать только ECDSA, поскольку ED25519 выдал мне ошибки неизвестного алгоритма на стороне dropbears.

Надеюсь, это поможет кому-то, споткнувшемуся об этом вопросе, как и мне, хотя это, вероятно, не решение исходного вопроса, пожалуйста. простить.

3
25.01.2021, 21:29

Теги

Похожие вопросы