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?
OpenSSH ist nicht mit iOS 10.2 kompatibel und wird in späteren Versionen des Jailbreaks Dinge kaputt machen. Sie sollten sowohl OpenSSH als auch OpenSSL (Abhängigkeit) deinstallieren.
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:
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.
launchctl 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
.
IProxy installieren
brew install libimobiledevice
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
Jetzt können Sie sich mit dem iPhone verbinden, indem Sie ssh ausführen
ssh root@localhost -p 2222
Beachten Sie, dass Sie sich localhost
nicht 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 openssh
Paket von Cydia installieren.
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@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 .
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
Neuenglander