Получение доступа по SSH к Pocketbook 626+

Настройка доступа из Linux.

Напильник на изготовку

Читалка 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+. В дальнейшем здесь должны появиться ссылки на следующие статьи.

20 апреля, 2017 10:18