Как я могу получить доступ к своему телефону Ubuntu через SSH?

Всякий раз, когда я пытаюсь запустить apt-get install openssh-server, я получаю следующие ошибки:

root@ubuntu-phablet:/home/hablet# apt-get install openssh-server
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to write to /var/cache/apt
E: The package lists or status file could not be parsed or opened.
16
задан 27 March 2015 в 14:50

6 ответов

С официальной финальной версией Ubuntu для Телефонов поставляет инструмент "сервиса гаджета андроида", с которым можно управлять adb, mtp, ограничивающий USB и ssh.

Подключите свое устройство через USB, включите Режим Разработчика в:

"Системные настройки-> Об Этом Телефоне-> Режим Разработчика"

... и выполненный (от Вашего ПК, удостоверьтесь, что разблокировали телефонный экран, еще adb откажется впускать Вас):

adb shell android-gadget-service enable ssh

Скопируйте свой открытый ключ в Телефон:

adb shell mkdir /home/phablet/.ssh
adb push ~/.ssh/id_rsa.pub /home/phablet/.ssh/authorized_keys
adb shell chown -R phablet.phablet /home/phablet/.ssh
adb shell chmod 700 /home/phablet/.ssh
adb shell chmod 600 /home/phablet/.ssh/authorized_keys

Теперь можно искать IP по телефону и использовать ssh для соединения:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>
27
ответ дан 27 March 2015 в 14:50

Активировать ssh доступ полностью по Wi-Fi, без режима разработчика по телефону, без любых специальных инструментов на Вашем компьютере и не используя USB:

  1. Если у Вас уже нет ssh пары ключей, ввести ssh-keygen на Вашем компьютере и следуют инструкциям для генерации той.
  2. Установите Терминальное приложение по телефону от App Store.
  3. Откройте Terminal и тип (это легче с телефоном в альбомной ориентации):

    sudo setprop persist.service.ssh true
    mkdir -pm700 ~/.ssh
    ip addr
    nc -l 1234 > ~/.ssh/authorized_keys
    

    (последняя команда зависнет; это ожидается),

  4. Ищите IP-адрес своего телефона в Терминале, как возвращено ip addr команда выше.

  5. На Вашем компьютере введите (замена 192.0.2.1 с IP-адресом Вашего телефона сверху):

    nc 192.0.2.1 1234 < ~/.ssh/id_rsa.pub
    

    Если успешный, последняя команда на Терминале Вашего телефона теперь успешно выполнится.

  6. На Вашем компьютере введите (снова замена 192.0.2.1 с IP-адресом Вашего телефона сверху):

    ssh phablet@192.0.2.1
    
  7. Если IP-адрес Вашего телефона изменится, то необходимо будет использовать ip addr в Терминальном приложении по Вашему телефону снова и корректируют Вашу команду ssh соответственно.

17
ответ дан 27 March 2015 в 14:50

Попробуйте сделать его доступным для записи и перезагрузите систему:

touch /userdata/.writable_image

Редактировать: При сборке используйте переключатель --pending Обновления до фаблет-флеш

Редактировать: Системные образы теперь рекомендуемый способ развертывания и обновления Ubuntu Touch

0
ответ дан 27 March 2015 в 14:50

Сервер OpenSSH теперь (по состоянию на 13 сентября 2013 г.) предварительно загружен с Ubuntu Touch . Однако он также отключен по умолчанию . Вы также не хотите, чтобы SSH работал с root .


Вам необходимо ввести следующее, используя USB-соединение с устройством:

adb shell
su - phablet
sudo tee /etc/init/ssh.override < /dev/null

Чтобы вернуться к отключенному

echo "manual" | sudo tee /etc/init/ssh.override

ОБНОВЛЕНИЕ : (09-Mar-2014)

Ответ выше больше не актуален.

  • По состоянию на начало марта 2014 года, хотя файл /etc/init/ssh.override все еще существует, изменение его содержимого не позволяет SSH (фактически демон sshd ) запустить при запуске.

  • Последние сборки (протестированные для 226 , но, возможно, ранее) теперь поддерживают новый мета-флаг persist.service.ssh , чтобы разрешить SSH ( sshd daemon) для перезапуска при запуске.

Получить в командную строку (на устройстве)

adb shell
su - phablet

Запустить SSH и установить флаг

sudo service ssh start
sudo setprop persist.service.ssh true

Перезапустить устройство

sudo reboot

Демон SSH должен автоматически запускаться

sudo service ssh status

Чтобы отключить автоматический запуск SSH, измените флаг:

sudo setprop persist.service.ssh false
0
ответ дан 27 March 2015 в 14:50

Я только что нашел более быстрый (быстрый и грязный) способ (Внимание: это небезопасно!) :

1) Установите приложение терминала и откройте его

[ 118] 2) переключиться на root

sudo su

(введите пароль блокировки экрана)

2) Введите следующие команды:

echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "AllowUsers phablet" >> /etc/ssh/sshd_config
/usr/sbin/sshd

Теперь ваш ssh-сервер работает, и он примет ваш код блокировки экрана в качестве пароля! Внимание: перебор очень легко! Пожалуйста, измените ваши настройки немедленно (теперь вы можете сделать это удобным способом, после подключения через ssh с вашего ПК).

Поскольку вы запускаете sshd вручную, файл /etc/init/ssh.override больше не применяется ...

Итак, для подключения с вашего ПК:

ssh phablet@x.x.x.x

где xxxx - это IP-адрес вашего телефона, который вы можете найти, набрав

ifconfig

в терминале вашего телефон.

Наслаждайтесь!

ОБНОВЛЕНИЕ : возможно, после обновления sshd не запускается, потому что не может открыть ключи хоста, а затем просто сгенерировать их:

/usr/bin/ssh-keygen -A

Если произойдет сбой из-за отсутствия / var / run / sshd, просто создайте его:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
0
ответ дан 27 March 2015 в 14:50

Установите Ubuntu SDK и нажмите «Открыть SSH-соединение с устройством» на панели устройств. Бонус: вы не будете сопротивляться написанию нового Scope ...

0
ответ дан 27 March 2015 в 14:50

Другие вопросы по тегам:

Похожие вопросы: