Comment puis-je accéder à mon téléphone Ubuntu via ssh?

16

Chaque fois que j'essaie d'exécuter, apt-get install openssh-serverj'obtiens les erreurs suivantes:

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
la source
Exactement la même erreur
user195123
Même erreur pour moi en faisant la même chose - Ubuntu 11.04.
Malee
1
@Malee 11.04 est en fin de vie, vous ne pouvez pas obtenir d'aide pour 11.04 ici à cause de cela. Mettez à niveau vers 12.04 ou plus récent, ou vers une version prise en charge, puis nous pouvons vous aider à le corriger.
Thomas Ward
1
Ubuntu touch n'a pas encore le centre logiciel et la mise à jour est uniquement sur terminal, ce que je n'ai pas fait car j'ai essayé d'installer openssh.
user195123
Ok puisque je n'ai pas encore trop changé, pensez-vous que le formatage de mon stockage et le reflashage d'ubuntu aident?
user195123

Réponses:

27

Avec la version finale officielle, Ubuntu pour téléphones embarque l'outil "android-gadget-service" avec lequel vous pouvez gérer adb, mtp, tethering USB et ssh.

Connectez votre appareil via USB, activez le mode développeur dans:

"Paramètres système-> À propos de ce téléphone-> Mode développeur"

... et exécutez (depuis votre PC, assurez-vous d'avoir l'écran du téléphone déverrouillé, sinon adb refusera de vous laisser entrer):

adb shell android-gadget-service enable ssh

Copiez votre clé publique sur le téléphone:

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

Vous pouvez maintenant rechercher votre IP sur le téléphone et utiliser ssh pour vous connecter:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>
Ogra
la source
Fonctionne très bien, mais la dernière commande n'affichera aucune IP si l'interface réseau n'est pas nommée wlan0. La mienne l'était wlan2pour une raison quelconque.
Cos64
La commande: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Me donne: ne peut pas stat '/home/tenleftfingers/.ssh/id_rsa.pub': Aucun fichier ou répertoire de ce type
TenLeftFingers
Pas besoin de mode développeur ou de rendre l'image inscriptible. Voir SSH Ubuntu Touch pour une solution simple et fonctionnelle. Comme toujours avec l'authentification sans mot de passe, vous devez placer un /home/phablet/.ssh/authorized_keysfichier (avec une clé publique du PC que vous utilisez pour accéder à l'appareil Ubuntu Touch) sur votre appareil. L'exécution ssh -v phablet@<ip-address>(verbeuse) aide à déboguer les problèmes de connexion ou d'autorisation.
Peterino
@orga Diffuse-t-il avec zeroconf (avahi-daemon)? De cette façon, je peux voir mon appareil sur nautilus et transférer des fichiers via sftp.
Khurshid Alam
J'ai également dû ajouter des autorisations: chmod ow ~ /
Mantas Vaitkūnas
17

Pour activer l'accès ssh entièrement via wifi , sans mode développeur sur le téléphone, sans aucun outil spécial sur votre ordinateur et sans utiliser USB :

  1. Si vous ne disposez pas déjà d'une paire de clés ssh, tapez ssh-keygensur votre ordinateur et suivez les instructions pour en générer une.
  2. Installez l'application Terminal sur le téléphone depuis l'App Store.
  3. Ouvrez un terminal et tapez (c'est plus facile avec le téléphone en mode paysage):

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

    (la dernière commande va se bloquer; cela est prévu)

  4. Recherchez l'adresse IP de votre téléphone dans le terminal comme ip addrindiqué par la commande ci-dessus.

  5. Sur votre ordinateur, tapez (en remplaçant 192.0.2.1par l'adresse IP de votre téléphone ci-dessus):

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

    En cas de succès, la dernière commande sur le terminal de votre téléphone va maintenant réussir.

  6. Sur votre ordinateur, tapez (à nouveau en remplaçant 192.0.2.1par l'adresse IP de votre téléphone ci-dessus):

    ssh [email protected]
    
  7. Si l'adresse IP de votre téléphone change, vous devrez à nouveau l'utiliser ip addrdans l'application Terminal de votre téléphone et ajuster votre commande ssh en conséquence.

Robie Basak
la source
3
Réponse très informative car elle supprime le shell adb et le câble USB. Deux pouces en l'air!
Stunts
En effet, réponse très utile. +2
zloster
@ogra (qui sait mieux que moi) me dit que cela a été sudo android-gadget-service enable sshremplacé sudo setprop persist.service.ssh trueet devrait être utilisé à la place, mais je n'ai pas testé cela.
Robie Basak
1
Cela devrait être la meilleure réponse car avec le BQ Aquarius 5, le téléphone ne peut pas être découvert avec la méthode Android.
Kat Amsterdam
14

Le serveur OpenSSH est maintenant (à partir du 13 septembre 2013) préchargé avec l' installation d' Ubuntu Touch . Cependant, il est également désactivé par défaut . Vous ne voulez pas non plus que SSH fonctionne à partir de la racine .


Vous devez taper ce qui suit, en utilisant une connexion USB à l'appareil:

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

Pour revenir à désactivé

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

MISE À JOUR: (09-mars-2014)

La réponse ci-dessus n'est plus d'actualité.

  • Depuis début mars 2014, alors que le fichier /etc/init/ssh.overrideexiste toujours, la modification de son contenu ne permet pas à SSH (en fait le démon sshd ) de s'exécuter au démarrage.

  • Les versions récentes (testées pour 226 , mais peut-être plus tôt) prennent désormais en charge un nouveau méta-indicateur persist.service.ssh , pour permettre à SSH ( démon sshd ) de redémarrer au démarrage.

Accéder à l'invite de commande (sur l'appareil)

adb shell
su - phablet

Démarrez SSH et définissez l'indicateur

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

Redémarrer l'appareil

sudo reboot

Le démon SSH devrait démarrer automatiquement

sudo service ssh status

Pour désactiver le démarrage automatique SSH, modifiez l'indicateur:

sudo setprop persist.service.ssh false
david6
la source
pourquoi avez-vous besoin de tout sudo après être allé su -?
Octopus du
1
La ligne su - phabletchange l' utilisateur en phablet , pas en super-utilisateur. Il est généralement recommandé d'utiliser le moins de privilèges afin d'être moins vulnérable aux attaques.
david6
cette réponse doit être mise à jour, regardez @ ogra's
sergiusens
1
Il faudra d'abord revoir et essayer cette méthode.
david6
0

Installez le SDK Ubuntu et cliquez sur "Ouvrir la connexion SSH pour le périphérique" dans le panneau des périphériques. Bonus: vous ne résisterez pas à l'écriture d'un nouveau Scope ...

Beernarrd
la source
0

Je viens de trouver un moyen plus rapide (rapide et sale) (Attention: ce n'est pas sécurisé!) :

1) Installez l'application du terminal et ouvrez-la

2) passer en root

sudo su

(entrez votre mot de passe de verrouillage d'écran)

2) Entrez les commandes suivantes:

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

Maintenant, votre serveur ssh fonctionne et il acceptera votre code de verrouillage d'écran comme mot de passe! Attention: il est très facile de forcer la force maintenant! Veuillez modifier vos paramètres immédiatement (vous pouvez maintenant le faire de manière confortable, après vous être connecté via ssh à partir de votre PC).

Puisque vous exécutez le sshd manuellement, le fichier /etc/init/ssh.override n'est plus appliqué ...

Donc, pour vous connecter depuis votre PC:

ssh [email protected]

où xxxx est l'adresse IP de votre téléphone, que vous pouvez trouver en tapant

ifconfig

dans le terminal de votre téléphone.

Prendre plaisir!

MISE À JOUR : il se peut qu'après la mise à jour, sshd ne démarre pas car il ne peut pas ouvrir les clés d'hôte, puis juste les régénérer:

/usr/bin/ssh-keygen -A

S'il échoue parce que / var / run / sshd est manquant, créez-le simplement:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
Andrey Sapegin
la source