Всякий раз, когда я пытаюсь запустить 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.
С официальной финальной версией 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>
Активировать ssh доступ полностью по Wi-Fi, без режима разработчика по телефону, без любых специальных инструментов на Вашем компьютере и не используя USB:
ssh-keygen
на Вашем компьютере и следуют инструкциям для генерации той.Откройте Terminal и тип (это легче с телефоном в альбомной ориентации):
sudo setprop persist.service.ssh true
mkdir -pm700 ~/.ssh
ip addr
nc -l 1234 > ~/.ssh/authorized_keys
(последняя команда зависнет; это ожидается),
Ищите IP-адрес своего телефона в Терминале, как возвращено ip addr
команда выше.
На Вашем компьютере введите (замена 192.0.2.1
с IP-адресом Вашего телефона сверху):
nc 192.0.2.1 1234 < ~/.ssh/id_rsa.pub
Если успешный, последняя команда на Терминале Вашего телефона теперь успешно выполнится.
На Вашем компьютере введите (снова замена 192.0.2.1
с IP-адресом Вашего телефона сверху):
ssh phablet@192.0.2.1
Если IP-адрес Вашего телефона изменится, то необходимо будет использовать ip addr
в Терминальном приложении по Вашему телефону снова и корректируют Вашу команду ssh соответственно.
Попробуйте сделать его доступным для записи и перезагрузите систему:
touch /userdata/.writable_image
Редактировать: При сборке используйте переключатель --pending
Обновления до фаблет-флеш
Редактировать: Системные образы теперь рекомендуемый способ развертывания и обновления Ubuntu Touch
Сервер 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
Ответ выше больше не актуален.
По состоянию на начало марта 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
Я только что нашел более быстрый (быстрый и грязный) способ (Внимание: это небезопасно!) :
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
Установите Ubuntu SDK и нажмите «Открыть SSH-соединение с устройством» на панели устройств. Бонус: вы не будете сопротивляться написанию нового Scope ...