Як я можу отримати доступ до свого телефону Ubuntu через ssh?


16

Щоразу, коли я намагаюся запустити, 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.

Точно така ж помилка
user195123

Та сама помилка для мене, що роблю те саме - ubuntu 11.04.
Мале

1
@Malee 11.04 - це кінець життя, тут ви не можете отримати допомогу за 11.04. Оновіть до 12.04 або новішої версії, або до підтримуваного випуску, і тоді ми можемо допомогти вам виправити це.
Thomas Ward

1
Ubuntu touch ще не має програмного центру, і оновлення є лише термінальним, чого я не робив, як намагався встановити openssh.
користувач195123

Добре, оскільки я ще не надто змінився, чи вважаєте ви, що форматування моєї пам’яті та перепрошивка ubuntu допомагає?
користувач195123

Відповіді:


27

З офіційним остаточним випуском Ubuntu для телефонів постачає інструмент "android-gadget-service", за допомогою якого ви можете керувати 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>

Працює чудово, але остання команда не відображатиме IP, якщо мережевий інтерфейс не буде названий wlan0. Моя була wlan2чомусь.
Cos64

Команда: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Дає мені: не можу stat '/home/tenleftfingers/.ssh/id_rsa.pub': Немає такого файлу чи каталогу
TenLeftFingers

Немає необхідності в режимі розробника або робити зображення для запису. Див. SSH Ubuntu Touch для легкого, працюючого рішення. Як і завжди, без автентифікації без паролів, вам потрібно розмістити /home/phablet/.ssh/authorized_keysфайл (із відкритим ключем ПК, який ви використовуєте для доступу до пристрою Ubuntu Touch) на своєму пристрої. Запуск ssh -v phablet@<ip-address>(багатослівний) допомагає налагоджувати проблеми з входом або дозволом.
Петерино

@orga Чи транслюється програма з zeroconf (avahi-daemon)? Таким чином я можу бачити свій пристрій на nautilus та передавати файли через sftp.
Хуршид Алам

Я також повинен був додати дозволи: chmod ow ~ /
Mantas Vaitkūnas

17

Щоб повністю активувати доступ до ssh через wifi , без режиму розробника на телефоні, без спеціальних інструментів на комп’ютері та без використання USB :

  1. Якщо у вас ще немає ключа ssh, введіть ssh-keygenна своєму комп’ютері та дотримуйтесь інструкцій для його створення.
  2. Встановіть додаток Terminal на телефон із App Store.
  3. Відкрийте термінал і введіть (це простіше за допомогою телефону в альбомній орієнтації):

    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.1IP-адресу телефону зверху):

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

    У разі успіху остання команда на Терміналі вашого телефону тепер буде успішною.

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

    ssh phablet@192.0.2.1
    
  7. Якщо IP-адреса вашого телефону зміниться, вам потрібно буде знову скористатися ip addrдодатком Terminal на вашому телефоні та відповідно відрегулювати команду ssh.


3
Дуже інформативна відповідь, оскільки це усуває обкладинку adb та кабель USB. Два великих пальця вгору!
Трюки

Справді, Дуже корисна відповідь. +2
zloster

@ogra (хто знає краще за мене) каже мені, що sudo android-gadget-service enable sshзамінив її sudo setprop persist.service.ssh trueта слід використовувати, але я цього не перевіряв.
Робі Басак

1
Це має бути головною відповіддю, оскільки при BQ Aquarius 5 телефон не можна виявити методом android.
Кет Амстердам,

14

Сервер 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.03.2014)

Відповідь вище не є актуальною.

  • На початок березня 2014 року, поки файл /etc/init/ssh.overrideвсе ще існує, зміна його вмісту не дозволяє SSH (власне sshd- демон) запускатися при запуску.

  • Останні збірки (тестовані на 226 , але можливо раніше) тепер підтримують новий мета-прапор persist.service.ssh , щоб дозволити SSH ( sshd демон) перезапуститись при запуску.

Перейти до командного рядка (на пристрої)

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
Рядок su - phabletзмінює користувача на phablet , а не на суперкористувача. Як правило, найкраща практика використовувати найменші привілеї , щоб бути менш вразливими до нападу.
david6

ця відповідь потребує оновлення, подивіться на @ ogra's
sergiusens

1
Потрібно спочатку переглянути та спробувати цей метод.
david6

0

Спробуйте зробити його для запису та перезавантажити:

touch /userdata/.writable_image

Редагувати: Коли ви будуєте його, використовуйте --pendingперемикач " Оновлення на фаблет-спалах"

Редагувати: системні зображення тепер рекомендований спосіб розгортання та оновлення Ubuntu Touch


Ця відповідь більше не актуальна.
папі

0

Встановіть Ubuntu SDK і натисніть «Відкрити з'єднання SSH зробити пристрій» на панелі пристроїв. Бонус: ви не будете протистояти написанню нової сфери ...


0

Я щойно знайшов більш швидкий (швидкий і брудний) спосіб (Увага: це не безпечно!) :

1) Встановіть додаток терміналу та відкрийте його

2) перехід на корінь

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.