Получение доступа по SSH к Pocketbook 626+
Напильник на изготовку⌗
Читалка Pocketbook 626+ обладает довольно-таки неплохими техническими характеристиками для своей цены. К сожалению, ничто не совершенно, и в некоторых случаях ПО, предоставляемое производителем этой электронной книги, оставляет желать лучшего. Хорошей новостью можно считать то, что в качестве ОС этой читалки используется Linux, а это означает, что пользователь может самостоятельно исправить некоторые недочёты ванильной прошивки. Для начала организуем доступ по SSH.
Получение шелла⌗
Чтобы получить простой шелл на Pocketbook 626+, можно использовать приложение, написанное пользователем review на mobileread.com. Подключите читалку к ПК и скопируйте это приложение в каталог applications встроенной памяти. После этого, откройте скопированный файл в вашем любимом текстовом редакторе. Как вы можете заметить, это простой сценарий:
#!/bin/sh
# connect only to network if we're not already connected
mypid="$(ps |grep netagent|grep connect)"
if [[ "$mypid" == "" ]]; then
/ebrmain/bin/netagent connect
fi
myip=192.168.1.2
#create backpipe if it doesn't exist
if ls -l /tmp/|grep backpipe |grep ^p; then
echo "debug: backpipe exist."
else
mknod /tmp/backpipe p
fi
# the heart...
nc $myip 9999 0</tmp/backpipe|/bin/sh -i 2>&1 |tee -a /tmp/backpipe;
# disconnect, if started by us.
if [[ "$mypid" == "" ]]; then
/ebrmain/bin/netagent disconnect
fi
Вам необходимо изменить переменную myip, прописав там IP-адрес вашего ПК. Дело в том, что netcat, входящая в состав прошивки Pocketbook 626+, не может запускаться в режиме прослушивания порта, поэтому читалка должна сама устанавливать соединение. Разумеется, читалка и ПК должны находиться в пределах одной локальной сети.
Сохраните файл, отмонтируйте читалку. На вашем ПК запустите:
nc -l 9999
После этого запустите приложение rsh на вашей электронной книге. Соединение Wi-Fi будет установлено автоматически. Теперь можно пользоваться открытой вами ранее консолью для доступа к командной строке читалки.
Полноценный SSH и SFTP⌗
Для получения почти полноценного доступа к читалке RSH мало. В частности, такое подключение не позволит удобно передать файлы, да и передача незашифрованного трафика небезопасна. К счастью, есть собранная пользователем rkomar на форуме mobiread.com версия sshd, которую можно запускать от имени обычного пользователя. Для Pocketbook 626+ нужно скачать версию pbsshd 1.3_fwv5. Распакуйте архив, подключите читалку к ПК и скопируйте содержимое в каталог applications встроенной памяти.
После этого отредактируйте конфигурацию, которая находится в applications/pb_sshd/etc/ssh/sshd_config. Привожу пример своей конфигурации:
Port 10022
Protocol 2
AllowUsers reader sreader
UsePrivilegeSeparation no
PermitRootLogin no
PermitEmptyPasswords yes
RSAAuthentication yes
PubkeyAuthentication yes
StrictModes no
AuthorizedKeysFile /mnt/ext1/applications/pb_sshd/etc/ssh/authorized_keys2
Subsystem sftp /mnt/ext1/applications/pb_sshd/usr/libexec/sftp-server
Я изменил в конфигурации по умолчанию только номер порта, который слушает демон sshd. Значение этого параметра не должно быть 1024 или меньше, так как порты от 0 до 1024 - привилегированные и открывать их обычный пользователь не может.
Следующий шаг - создать пару ключей RSA, с помощью которых вы будете устанавливать SSH-соединение. Как это сделать - ищите в сети. После создания пары ключей публичный ключ необходимо разместить по адресу applications/pb_sshd/etc/ssh/authorized_keys2. После этого отмонтируйте читалку и запустите приложение sshd_start.
Протестируйте подключение при помощи команды:
ssh reader@192.168.10.57 -p 10022 "sh"
Не забудьте указать IP-адрес, который получило именно ваше устройство. Узнать его можно, запустив “Настройки” -> “Wi-Fi” и нажав на SSID сети, к которой в данный момент подключена ваша читалка.
После подключения вы не увидите приглашения командной строки. Это нормально и связано с ограничениями, накладываемыми на демон sshd при запуске с правами обычного пользователя. Попробуйте ввести пару команд, например, ls.
Для того, чтобы не вводить каждый раз при подключении имя пользователя, адрес и прочие параметры, добавьте в вашу конфигурацию ssh (~/.ssh/config) следующее (укажите IP-адрес вашей читалки):
Host pocketbook
HostName 192.168.10.57
Port 10022
User reader
Это позволит сократить вышеуказанную команду до
ssh pocketbook "sh"
Если ваше подключение работает нормально, поздравляю! Теперь вы можете подключаться к консоли читалки, а также передавать файлы. Можно использовать rsync, а если ваш файловый менеджер поддерживает подключения SFTP, используйте адрес:
sftp://pocketbook
После завершения сеанса запустите на читалке приложение sshd_stop.
Послесловие⌗
Эта статья - первая из планируемого цикла, посвящённого модификациям и расширению возможностей Pocketbook 626+. В дальнейшем здесь должны появиться ссылки на следующие статьи.