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

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