Wie kann ich über ssh auf mein Ubuntu-Telefon zugreifen?


16

Wann immer ich versuche zu laufen, apt-get install openssh-servererhalte ich die folgenden Fehlermeldungen:

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.

Genau der gleiche Fehler
user195123

Gleicher Fehler für mich - Ubuntu 11.04.
Malee

1
@Malee 11.04 ist das Ende des Lebens, deshalb können Sie für 11.04 hier keine Hilfe mehr bekommen. Aktualisieren Sie auf 12.04 oder neuer oder auf ein unterstütztes Release, und wir können Ihnen dann bei der Behebung helfen.
Thomas Ward

1
Ubuntu Touch hat noch kein Software-Center und die Aktualisierung erfolgt nur über das Terminal, was ich nicht getan habe, als ich versucht habe, openssh zu installieren.
user195123

Ok, da ich noch nicht zu viel geändert habe, denkst du, das Formatieren meines Speichers und das erneute Blinken von Ubuntu hilft?
user195123

Antworten:


27

Mit der offiziellen endgültigen Veröffentlichung von Ubuntu for Phones wird das Tool "android-gadget-service" ausgeliefert, mit dem Sie AdB, MTP, USB-Tethering und SSH verwalten können.

Schließen Sie Ihr Gerät über USB an und aktivieren Sie den Entwicklermodus in:

"Systemeinstellungen-> Über dieses Telefon-> Entwicklermodus"

... und starten Sie (stellen Sie sicher, dass der Telefonbildschirm von Ihrem PC aus entsperrt ist, da Sie sonst von adb nicht zugelassen werden):

adb shell android-gadget-service enable ssh

Kopieren Sie Ihren öffentlichen Schlüssel auf das Telefon:

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

Jetzt können Sie Ihre IP auf dem Telefon nachschlagen und mit ssh eine Verbindung herstellen:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>

Funktioniert prima, aber der letzte Befehl zeigt keine IP an, wenn die Netzwerkschnittstelle nicht benannt ist wlan0. Meins war wlan2aus irgendeinem Grund.
Cos64

Der Befehl: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Gibt mir: cannot stat '/home/tenleftfingers/.ssh/id_rsa.pub': Keine solche Datei oder Verzeichnis
TenLeftFingers

Keine Notwendigkeit für den Entwicklermodus oder das Beschreiben des Images. Eine einfache und funktionierende Lösung finden Sie unter SSH Ubuntu Touch . Wie immer bei der passwortlosen Authentifizierung müssen Sie eine /home/phablet/.ssh/authorized_keysDatei (mit einem öffentlichen Schlüssel des PCs, mit dem Sie auf das Ubuntu Touch-Gerät zugreifen) auf Ihrem Gerät ablegen. Das Ausführen ssh -v phablet@<ip-address>(ausführlich) hilft beim Debuggen von Anmelde- oder Berechtigungsproblemen.
Peterino

@orga Wird mit zeroconf (avahi-daemon) gesendet? Auf diese Weise kann ich mein Gerät auf Nautilus sehen und Dateien über SFTP übertragen.
Khurshid Alam

Ich musste auch Berechtigungen hinzufügen: chmod ow ~ /
Mantas Vaitkūnas

17

So aktivieren Sie den SSH-Zugriff vollständig über WLAN , ohne Entwicklermodus auf dem Telefon, ohne spezielle Tools auf Ihrem Computer und ohne Verwendung von USB :

  1. Wenn Sie noch kein SSH-Schlüsselpaar haben, geben Sie es ssh-keygenauf Ihrem Computer ein und befolgen Sie die Anweisungen, um eines zu erstellen .
  2. Installieren Sie die Terminal-App auf dem Telefon aus dem App Store.
  3. Öffnen Sie ein Terminal und geben Sie Folgendes ein (dies ist einfacher, wenn Sie das Telefon im Querformat verwenden):

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

    (der letzte Befehl wird hängen bleiben; dies wird erwartet)

  4. Suchen Sie im Terminal nach der IP-Adresse Ihres Telefons, die vom ip addrobigen Befehl zurückgegeben wurde.

  5. Geben Sie auf Ihrem Computer Folgendes ein ( 192.0.2.1von oben durch die IP-Adresse Ihres Telefons ersetzen ):

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

    Bei Erfolg ist der letzte Befehl auf dem Terminal Ihres Telefons jetzt erfolgreich.

  6. Geben Sie auf Ihrem Computer Folgendes ein (erneutes Ersetzen 192.0.2.1durch die IP-Adresse Ihres Telefons von oben):

    ssh phablet@192.0.2.1
    
  7. Wenn sich die IP-Adresse Ihres Telefons ändert, müssen Sie ip addrdie Terminal-App auf Ihrem Telefon erneut verwenden und Ihren ssh-Befehl entsprechend anpassen.


3
Sehr informative Antwort, da die ADB-Shell und das USB-Kabel wegfallen. Zwei Daumen hoch!
Stunts

In der Tat sehr nützliche Antwort. +2
Zloster

@ogra (wer weiß es besser als ich) sagt mir, dass es sudo android-gadget-service enable sshüberholt ist sudo setprop persist.service.ssh trueund stattdessen verwendet werden sollte, aber ich habe dies nicht getestet.
Robie Basak,

1
Dies sollte die beste Antwort sein, da beim BQ Aquarius 5 das Telefon mit der Android-Methode nicht erkannt werden kann.
Kat Amsterdam

14

Der OpenSSH-Server ist jetzt (Stand: 13. September 2013) mit der Ubuntu Touch- Installation vorinstalliert . Es ist jedoch auch standardmäßig deaktiviert . Sie möchten auch nicht, dass SSH von root aus ausgeführt wird .


Sie müssen Folgendes über eine USB-Verbindung zum Gerät eingeben:

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

Zurück zu deaktiviert

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

UPDATE: (09.03.2014)

Die Antwort oben ist nicht mehr aktuell.

  • Seit Anfang März 2014 kann /etc/init/ssh.overrideSSH (eigentlich der sshd- Daemon) beim Start nicht ausgeführt werden , solange die Datei noch vorhanden ist .

  • Die neuen Builds (getestet für 226 , aber möglicherweise früher) unterstützen jetzt ein neues Meta-Flag persist.service.ssh , damit SSH ( sshd- Daemon) beim Start neu gestartet werden kann.

Eingabeaufforderung aufrufen (auf dem Gerät)

adb shell
su - phablet

Starten Sie SSH und setzen Sie das Flag

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

Gerät neustarten

sudo reboot

Der SSH-Dämon sollte automatisch gestartet werden

sudo service ssh status

Ändern Sie das Flag, um den automatischen SSH-Start zu deaktivieren:

sudo setprop persist.service.ssh false

warum musst du alles sudo nachdem du su - gegangen bist?
Octopus,

1
Die Leitung su - phabletändert den Benutzer in " Phablet" und nicht in " Superuser" . Es wird allgemein empfohlen , die geringsten Berechtigungen zu verwenden , um weniger anfällig für Angriffe zu sein.
David6

Diese Antwort muss aktualisiert werden. Sehen Sie sich @ ogra's
sergiusens 25.03.15

1
Müssen diese Methode zuerst überprüfen und versuchen.
David6


0

Installieren Sie Ubuntu SDK und klicken Sie im Gerätefenster auf "Open SSH connection do the device". Bonus: Sie werden nicht widerstehen, ein neues Scope zu schreiben ...


0

Ich habe gerade einen schnelleren (schnellen und schmutzigen) Weg gefunden (Achtung: es ist nicht sicher!) :

1) Installieren Sie die Terminal-App und öffnen Sie sie

2) zu root wechseln

sudo su

(Geben Sie Ihr Passwort für die Bildschirmsperre ein.)

2) Geben Sie die folgenden Befehle ein:

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

Jetzt läuft Ihr SSH-Server und akzeptiert Ihren Bildschirmsperrcode als Passwort! Achtung: Es ist jetzt sehr einfach, Gewalt anzuwenden! Bitte ändern Sie Ihre Einstellungen sofort (jetzt können Sie es auf komfortable Weise tun, nachdem Sie sich über ssh von Ihrem PC aus verbunden haben).

Da Sie sshd manuell ausführen, wird die Datei /etc/init/ssh.override nicht mehr angewendet ...

So stellen Sie eine Verbindung von Ihrem PC her:

ssh phablet@x.x.x.x

Dabei ist xxxx eine IP-Adresse Ihres Telefons, die Sie durch Eingabe von finden können

ifconfig

im Terminal Ihres Telefons.

Genießen!

UPDATE : es könnte sein, dass sshd nach dem Update nicht startet, weil es keine Host-Schlüssel öffnen kann, und diese dann einfach neu generiert:

/usr/bin/ssh-keygen -A

Wenn es fehlschlägt, weil / var / run / sshd fehlt, erstellen Sie es einfach:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.