Я могу показать пример с 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
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
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
.
Краткий ответ :Возможно, вы используете 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 к вашему вопросу.
Вам необходимо создать ключ 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. Затем попробуйте подключиться, должно получиться.
Некоторые подсказки, которые могут помочь вам подключиться с помощью PKI к Dropbear, это протестированный контейнер на основе пакетов Alpine Linux 3.12, подключающийся из клиента OpenSSH.
~
не должен быть доступен для записи группе/миру (, т.е. chmod 755
по крайней мере; вы должны использовать 700
для домашних каталогов ). ~/.ssh
и~/.ssh/authorized_keys
должен быть владельцем -, доступным только (, например. 700
в каталоге и 600
в файле ). /tmp
каталог authorized_keys
имеют тот же формат, что и OpenSSH. Я создаю контейнеры, используя файлы Cherry -выбранные из пакетов alpine; У меня есть образ ~размером 2 МБ, к которому я могу подключиться по ssh, если соблюдены все вышеперечисленные требования.
Я только что наткнулся на этот вопрос, когда искал причины, по которым подключение через dropbear к моему серверу внезапно перестало работать (работало несколько месяцев, но использовалось лишь изредка каждые пару недель ).
решение/объяснение, которое я, наконец, нашел, было в сообщении debug1: send_pubkey_test: no mutual signature algorithm
с повышенным вниманием к попытке подключения ssh моих клиентов, что привело меня к статье по устранению неполадок с битбакетом .
в этой статье упоминается Алгоритм RSA быстро устаревает в операционных системах и клиентах SSH из-за различных уязвимостей в системе безопасности[...] в качестве причины и приводится список возможных обходных путей:
добавление PubkeyAcceptedKeyTypes +ssh-rsa
в файл конфигурации клиента -(используйте это только как временный обходной путь , так как это потенциально небезопасно!)
используйте алгоритм/ключи ECDSA или ED25519. теперь, когда в моей системе присутствует версия dropbear, я мог использовать только ECDSA, поскольку ED25519 выдал мне ошибки неизвестного алгоритма на стороне dropbears.
Надеюсь, это поможет кому-то, споткнувшемуся об этом вопросе, как и мне, хотя это, вероятно, не решение исходного вопроса, пожалуйста. простить.