Вопрос или проблема
Для ssh я обычно добавляю ключи в /etc/ssh/keys-root/authorized_keys
, чтобы можно было входить без ввода пароля. Недавно я обнаружил несколько систем, которые используют dropbear ssh вместо ssh/openssh. Существует ли эквивалент authorized_keys для dropbear? Есть ли способ добавить авторизованные ключи для dropbear?
Оказывается, Dropbear совместим с аутентификацией с использованием публичных ключей ~/.ssh/authorized_keys
согласно этой документации. (И всей документацией/установками, которые я видел после быстрого поиска в Google)
Довольно старый вопрос, но на случай, если у кого-то такая же проблема.
Вам просто нужно поместить файл authorized_keys
в папку /etc/dropbear
(в моем случае на Ugoos AM3 с Entware это было /opt/etc/dropbear
).
Не забудьте сделать chmod 0600 /etc/dropbear/authorized_keys
.
Ссылка: https://oldwiki.archive.openwrt.org/doc/howto/dropbear.public-key.auth
Спасибо за ответы от @DimGun и @colealtdelete
Недавно я столкнулся с этой ‘возможностью’ на своем устаревшем планшете Samsung. К сожалению, мое проверенное ssh-приложение для Android не поддерживает более старое оборудование/релизы.
Я нашел приложение simpleSSHD
, это очень достойная замена для настроек, чтобы можно было использовать только authorized_keys
для входа. simpleSSHD
основан на проекте DropBear
.
Это создает небольшую проблему bootstrap. Пользовательские заметки иногда предполагали несколько вещей:
Простой способ (с моего PC с Linux) состоял в том, чтобы вставить новую запись в файл authorized_keys
на планшете в домашней директории simpleSSHD
. Это можно сделать, войдя в первый раз с одноразовым паролем.
На ПК …
# добавлен планшет в файл PC ~/.ssh/config
cat id_rsa.pub | xclip -selection clipboard
Вставляет запись публичного ключа в буфер обмена. Или вы можете просто выделить и скопировать.
Затем зайдите через ssh
на планшет:
$ ssh [email protected] -p2222
The authenticity of host '[192.168.xx.zz]:2222 ([192.168.xx.zz]:2222)' can't be established.
ECDSA key fingerprint is SHA256:oqsN8RKo9T990vjWiQEGooRBDUyId7yJG28eqGTAsa4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.xx.zz]:2222' (ECDSA) to the list of known hosts.
[email protected]'s password:
user@android:/data/data/org.galexander.sshd/files $ ls -l
-rw------- u0_a142 u0_a142 1499 2019-03-13 09:05 dropbear.err
-rw------- u0_a142 u0_a142 5 2019-03-13 08:52 dropbear.pid
-rw------- u0_a142 u0_a142 243 2018-09-21 12:41 dropbear_ecdsa_host_key
$ cat > authorized_keys
ecdsa-sha2-nistp256
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX= linuxpc@hostname
[Ctrl/D]
$ chmod 0600 authorized_keys
Теперь служба simpleSSHD
на планшете готова к безопасному входу. Испытайте это с помощью filezilla
и ssh без пароля и т.д.
Все это работало очень хорошо. Кроме того, в наши дни я могу использовать файловый обозреватель без необходимости в FTP-клиенте по пути:
sftp://[email protected]:2222//storage/extSdCard/Movies
Немного в 1000 раз быстрее, чем старые MTP-ссылки. Рекомендуется установить права на родительскую директорию: 0700
для эквивалента / родителя пути: ~/.ssh
.
Я использую это на MacOS для подключения к устройствам Android с использованием SSH-2.0-dropbear_2019.78
scp -P 2222 /Users/<USER_NAME>/.ssh/id_rsa.pub user@<IP_ADDRESS_FROM_DROPBEAR_APP>:/data/data/org.galexander.sshd/files/authorized_keys
Я использую SimpleSSHD на моем android устройстве. Как только я открываю приложение и активирую SSH сервер, я выполняю следующее:
- копирую текстовое содержимое
~/.ssh/id_rsa.pub
с клиентской машины. - вхожу на сервер dropbear,
- Перенаправляю содержимое буфера обмена в файл
authorized_keys
в домашней директории, используя командуecho
и вставляю содержимое после echo (в кавычках).
Это будет выглядеть так: echo "<вставьте содержимое из буфера обмена сюда>" >> authorized_keys
. Документация находится на SimpleSSHD.
Примечание: SimpleSSHD больше недоступен в Google Play магазине, но он все еще может быть установлен с использованием APK и т.д.
Все зависит от устройства, конфигурации, когда dropbear был скомпилирован, и настроек при запуске ssh сервера. Обычно следующее сработает, если у вас есть root доступ и ssh сервер запущен на порту 22.
ssh root@dropbeardevice "tee -a /etc/dropbear/authorized_keys" < ~/.ssh/id_rsa.pub
Возможно, попробуйте:
ssh user@dropbeardevice "tee -a ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
.
Ответ или решение
Добавление аутентификационных ключей в Dropbear SSH является важной задачей для ИТ-специалистов, стремящихся обеспечить простой и безопасный доступ к удалённым системам без необходимости ввода пароля. Dropbear — это легковесный SSH-сервер, который часто используется на устройствах с ограниченными ресурсами, таких как маршрутизаторы, встраиваемые системы и устройства на базе Android. В отличие от OpenSSH, Dropbear требует иной подход к размещению публичных ключей.
Теория: В OpenSSH публичные ключи обычно хранятся в файле ~/.ssh/authorized_keys
, который находится в домашнем каталоге пользователя. Этот файл разрешает пользователю подключаться по SSH без пароля, при условии, что на клиентском устройстве есть соответствующий приватный ключ. В случае Dropbear также существует поддержка хранения ключей в ~/.ssh/authorized_keys
, но зачастую требуется более специфическая конфигурация, основанная на платформе.
Пример: Рассмотрим, как осуществляется настройка на популярных платформах.
-
Linux-системы с Dropbear:
На Linux-системах, использующих Dropbear, обычно требуется поместить файлauthorized_keys
в каталог/etc/dropbear
или/opt/etc/dropbear
, что зависит от дистрибутива и его конфигурации. После этого следует обеспечить корректные разрешения для файла:chmod 0600 /etc/dropbear/authorized_keys
Такой подход гарантирует, что только системный администратор или владелец сможет изменять файл, предотвращая несанкционированный доступ.
-
Android-устройства с SimpleSSHD:
SimpleSSHD — это приложение для Android, основанное на Dropbear, которое предоставляет возможности SSH. Для Android-устройств файлauthorized_keys
часто располагается в каталоге, специфичном для приложения:/data/data/org.galexander.sshd/files/authorized_keys
Для добавления ключа можно использовать команду
echo
илиscp
для копирования вашего публичного ключа:echo "<ваш публичный ключ>" >> /data/data/org.galexander.sshd/files/authorized_keys chmod 0600 /data/data/org.galexander.sshd/files/authorized_keys
Применение: Для успешного применения этой информации необходимо учитывать несколько факторов:
-
Права доступа: Обратите внимание на правильные права доступа как для файла
authorized_keys
, так и для директории, в которой он размещён. Это важно для предотвращения несанкционированного изменения ключей или их удаления. -
Совместимость и версии: Убедитесь, что ваша версия Dropbear поддерживает использование определённых каталогов для хранения ключей. В случае сомнений обратитесь к официальной документации или проверьте настройки компиляции Dropbear.
-
Автоматизация и безопасность: Внедрение системы с автоматическим развертыванием включает скрипты, которые автоматически будут добавлять ключи и настраивать разрешения. Это ключ к эффективной масштабируемости и безопасности.
-
Тестирование доступа: После настройки убедитесь в работоспособности, протестировав возможность входа в систему по SSH, используя ваш приватный ключ. Это поможет выявить ошибки настройки и подтвердит правильность конфигурации.
В данном контексте важно подходить к процессу с учётом специфики вашей системы, потребностей в безопасности и стандартов вашей компании. Настройка Dropbear для работы с аутентификационными ключами обеспечивает удобство и увеличивает уровень защиты ваших систем от несанкционированного доступа.