So aktivieren Sie OpenSSh unter iOS 10.2

Ich habe mein iPhone 6s mit iOS 10.2 erfolgreich jailbreakt.

Ich habe OpenSSH über Cydia installiert und mein Standardpasswort über MobileTerminal geändert.

Das einzige Problem ist, wenn ich starte ssh root@my_iPhone_ip_addr, hängt es einfach und verbindet sich nie.

Ich habe die SSH-Toggle-Springboard-Anwendung ausprobiert, sie hängt jedoch immer noch.

Gibt es eine Möglichkeit, wie ich SSH auf meinem Telefon über einen Terminalbefehl oder auf andere Weise aktivieren kann?

Ich verwende iPhone Tunnel, um eine Verbindung zu meinem Gerät über ssh über USB herzustellen: code.google.com/archive/p/iphonetunnel-mac/downloads

Antworten (4)

Dieser Tweet wurde vor der Veröffentlichung von 10.2 Jailbreak erstellt, daher bin ich mir ziemlich sicher, dass er sich auf den äußerst instabilen 10.1.1 Jailbreak bezieht. Hast du eine aktualisierte Quelle?
Bitte befolgen Sie den Rat von grgarside: deinstallieren Sie OpenSSH. In meinem Beitrag finden Sie Schritt-für-Schritt-Anleitungen, um Ihr ssh zurückzubekommen.

Sie sollten den eingebauten Dropbear verwenden. Ab Yalu Beta 6 müssen Sie zuerst SSH über USB verwenden. Nachdem Sie Ihr Passwort geändert haben, können Sie Dropbear auf anderen Schnittstellen aktivieren.

Linux oder macOS:

  1. Laden Sie Gandalf-Binärdateien (ich hatte kein Glück beim Kompilieren) von der ocaml-usbmux- Github- Seite herunter. macOS: gandalf_darwin_10_11_x86_64
  2. Schließen Sie Ihr Gerät über ein USB-Kabel an und suchen Sie danach.
  3. Legen Sie die UID in eine Mapping-Datei. Stellen Sie sicher, dass device_port 22 (ssh) zugeordnet ist!
  4. Führen Sie gandalf mit Ihrer Zuordnungsdatei aus
  5. SSH zum local_port, der dem device_port 22 in Ihrer Zuordnungsdatei entspricht.
  6. Melden Sie sich mit dem Passwort alpine an.
  7. ÄNDERN SIE IHR PASSWORT!!!

Scan

$ gandalf

Beispiel-Mapping-Datei

[{"udid":"9cdfac9f74c5e18a6eff3611c0927df5cf4f2eca",
  "name":"i11", "forwarding": [{"local_port":2000, "device_port":22},
                               {"local_port":3000, "device_port":1122}]
                               }]

Führen Sie Gandalf mit der Zuordnungsdatei aus

$ gandalf -m myMappingFile.txt

SSH auf Port 2000

$ ssh mobile@localhost -p 2000

Passwort(e) ändern

$ passwd
$ su
$ passwd root

Jetzt, wo Sie sich auf Ihrem iOS-Gerät befinden ( Ihr Passwort wurde geändert, richtig? ), können Sie Dropbear auf anderen Schnittstellen wie folgt aktivieren.

  1. Erstellen Sie eine LaunchDaemon-Datei, um eine zweite Instanz von Dropbear zu starten.
  2. Neustart oder verwendenlaunchctl load

LaunchDaemon-Datei erstellen:

$ cd /Library/LaunchDaemons
$ cat <<EOF > ssh10022.plist

Fügen Sie dies in das Terminal ein:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>SSH port 10022</string>
    <key>Program</key>
    <string>/usr/local/bin/dropbear</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/dropbear</string>
        <string>-F</string>
        <string>-R</string>
        <string>-p</string>
        <string>10022</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Geben Sie Strg-D ein, um die Eingabe zu beenden. Das erzeugt nun die Datei ssh10022.plist

Starten Sie neu oder verwenden Sie launchctl

launchctl load /Library/LaunchDaemons/ssh10022.plist

Ausgaben:

Dropbear mag die iOS-Standardberechtigungen für das mobile Home-Verzeichnis nicht, daher funktioniert die SSH-Schlüsselauthentifizierung nicht. Nach jedem Neustart muss ich mich mit Passwort anmelden und die Berechtigungen korrigieren:

$ chmod go-w /var/mobile

So debuggen Sie Dropbear: Leiten Sie Dropbear-Protokolle auf stderr um (das Beispiel unten führt eine weitere Instanz auf Port 10023 aus).

$ dropbear -E -p 10023

Sie können mit dem 10.2-Jailbreak keine Verbindung zu ssh über WLAN herstellen. Sie müssen über USB ssh. Es gibt mehrere Optionen, aber die einfachste ist die Verwendung iproxy.

  1. IProxy installieren

    brew install libimobiledevice

  2. Führen Sie nun auf dem Terminal den folgenden Befehl aus.

    iproxy 2222 22

    Dadurch können Sie den gesamten Datenverkehr von Port 2222 an Port 22 über USB weiterleiten

  3. Jetzt können Sie sich mit dem iPhone verbinden, indem Sie ssh ausführen

    ssh root@localhost -p 2222

Beachten Sie, dass Sie sich localhostnicht mit der IP-Adresse Ihres Telefons verbinden. Wenn alles gut gelaufen ist, sollte Ihnen die ssh-Eingabeaufforderung angezeigt werden.

Wenn es nicht funktioniert, überprüfen Sie, ob ssh auf dem iPhone läuft, indem Sie es ausführen

telnet <iphone-ip-address-here> 22

Wenn Sie keine Verbindung herstellen können, stellen Sie sicher, dass Sie das opensshPaket von Cydia installieren.

Wahrscheinlich sollte die Installation von OpenSSH nicht vorgeschlagen werden, da der Autor des Jailbreaks, qwertyoruiop, ausdrücklich sagt, OpenSSH nicht zu installieren.
Ich konnte keine Verbindung mit herstellen Dropbear, in meinem Fall musste ich das Paket installieren OpenSSH, deshalb habe ich vorgeschlagen, dass die anderen Anweisungen auf dem Beta-Jailbreak zu basieren scheinen
Das ist nicht wahr. Sie können sich mit dem 10.2 Jailbreak auf SSH über WLAN verbinden. Sie müssen lediglich die Dropbear-Konfiguration aktualisieren, damit es auf allen Schnittstellen lauscht.
@Doug Bearbeiten Sie die Antwort und geben Sie die Anweisungen zum Aktivieren von SSH über WLAN ein.

@Colin Hat eine großartige Antwort für den Yulu-Jailbreak, aber ich habe Dinge ein wenig anders gemacht, die für die Leute nützlich sein können. Seine Antwort konzentriert sich darauf, einen neuen Daemon mit einem neuen Namen zu erstellen, sodass Sie effektiv zwei Daemons haben, die SSH ausführen. Eine für USB und eine für andere TCP-Verbindungen. Ich wollte einen Listener, der alle Schnittstellen abhört. Ich war auch auf Windows und brauchte etwas, das damit funktionierte, was Galdolf nicht tat. Als Ergebnis habe ich mich für ein Python-Skript entschieden, das ich gegabelt habe, um sicherzustellen, dass es niemals auf mir verschwindet.

Um dies zu verwenden, führen Sie Folgendes aus:

python usbmuxd\pythonclient\tcprelay.py -t 22:2222

Das obige ordnet den lokalen Port 2222 dem Remote-Port 22 zu. Sobald dies eingerichtet ist, können Sie Ihr bevorzugtes SSH-Dienstprogramm verwenden, um eine Verbindung herzustellen. Ich habe Putty verwendet .

  • Host: 127.0.0.1
  • Hafen: 2222

Der Standardbenutzername „root“ und das Passwort „alpine“, aber ein Benutzername „mobile“ und ein Passwort „alpine“ können auch zum Verbinden verwendet werden.

HINWEIS: Wenn Sie das Root-Passwort nicht kennen, verwenden Sie Filza, um die Berechtigungen von /etc/master.passwd auf 666 zu ändern, und bearbeiten Sie dann über SSH als mobiler Benutzer oder mit Ihrem bevorzugten Dateieditor diese Datei, um den Hash zu kopieren von "mobile" zu "root", um die Passwörter gleich zu machen. (Der Hash für „alpine“ ist „/smx7MYTQIi2M“, falls erforderlich). Sie sollten sich dann als root anmelden oder su verwenden können.

Sobald Sie sich angemeldet haben, möchten Sie die Kopien von droplist.plist finden, die sich derzeit auf Ihrem Computer befinden. Es gibt wahrscheinlich effizientere Möglichkeiten, dies zu tun, aber ich habe den folgenden Befehl verwendet:

find . | grep dropbear.plist

Was ergab:

./Library/LaunchDaemons/dropbear.plist
./private/var/containers/Bundle/Application/023FF836-8A0A-4593-A578-6801F2A3F34D/yalu102.app/dropbear.plist

Der erste Eintrag ist der aktive Daemon, aber der zweite ist wichtiger. Es ist der Daemon, den Yulu jedes Mal einsetzt, wenn Sie den Jailbreak ausführen (was Sie bei jedem Neustart tun müssen). Wenn Sie nur /Library/LaunchDaemons/dropbear.plist bearbeiten, wird es bei jedem Neustart ersetzt.

Als Ergebnis werden wir die Datei bearbeiten, die mit Yulu geliefert wird, aber wenn Sie die Datei durchsuchen, werden Sie feststellen, dass sie in einem binären PLIST-Format vorliegt. Um dies zu beheben, benötigen wir Erica Utilities , um Plutil zu erhalten. Sie können dann ausführen:

plutil -xml dropbear.plist

Dadurch wird die dropbear.plist in das XML-Format konvertiert. Sobald dies erledigt ist, können Sie die Datei in einem beliebigen Texteditor bearbeiten. Für die eigentliche Bearbeitung habe ich Nano verwendet.

z.B

nano dropbear.plist

Wenn Sie die Datei bearbeiten, möchten Sie das "localhost:" aus dem letzten String-Eintrag entfernen. Dadurch wird der Listener auf allen Schnittstellen ausgeführt, anstatt nur auf der Loopback-Schnittstelle (die nur über USB verfügbar ist). Als Ergebnis wird Ihre Datei:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>ShaiHulud</string>
        <key>Program</key>
        <string>/usr/local/bin/dropbear</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/dropbear</string>
                <string>-F</string>
                <string>-R</string>
                <string>-p</string>
                <string>22</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

Sobald Sie dies getan haben, möchten Sie die Datei wieder in das Binärformat bringen:

plutil -binary dropbear.plist

An dieser Stelle schlage ich vor, dass Sie das Gerät neu starten und überprüfen, ob die Datei Yalu dropbear.plist beim erneuten Jailbreak ordnungsgemäß kopiert wurde:

z.B

reboot

Nach einem Neustart sollten Sie in der Lage sein, SSH mit der IP-Adresse Ihres Telefons und dem Standardport 22 zu verwenden.

z.B

  • Host: (IP von Einstellungen -> WLAN -> (WIFI-NAME)
  • Hafen: 22
Danke, dass du alle deine Schritte buchstabiert hast! Das macht es viel zukunftssicherer. Ich habe versucht > find . | grep dropbear.plist, um die Dropbear-Konfiguration auf dem LiberIOS-Jailbreak zu finden, aber ich habe keine Ahnung, wo sie die Konfiguration abgelegt haben.
Versuchen Sie, zu /Library/LaunchDaemons/ zu navigieren und sehen Sie, ob Sie den Namen herausfinden können, den sie dort verwendet haben. Höchstwahrscheinlich benutzten sie überall denselben Namen. In diesem Ordner befinden sich alle Daemon-Skripte. Wenn sie also einen vorhandenen Daemon haben, muss dieser dort referenziert werden.
Ich habe vergessen, cd / vor dem Ausführen von find einzugeben. | grep dropbear.plist. Duh.
Dadurch wurde mir klar, dass wir einfach vorschlagen könnten, die Dropbear.plist im Yalu IPA zu hacken, bevor wir sie mit Impactor auf das Gerät hochladen. Aber andererseits kann man zwar binäre .plist-Dateien mit Xcode unter macOS direkt bearbeiten, aber ich weiß nicht, ob solche Einrichtungen in Windows oder Linux existieren.