iOS 10.2で動作するiPhone 6をうまく脱獄しました。
CydiaでOpenSSHをインストールし、MobileTerminalでデフォルトのパスワードを変更しました。
唯一の問題は、を実行ssh root@my_iPhone_ip_addr
するとハングするだけで、接続されないことです。
SSHトグルスプリングボードアプリケーションを試しましたが、まだハングします。
端末コマンドまたはその他の方法で電話でSSHを有効にする方法はありますか?
iOS 10.2で動作するiPhone 6をうまく脱獄しました。
CydiaでOpenSSHをインストールし、MobileTerminalでデフォルトのパスワードを変更しました。
唯一の問題は、を実行ssh root@my_iPhone_ip_addr
するとハングするだけで、接続されないことです。
SSHトグルスプリングボードアプリケーションを試しましたが、まだハングします。
端末コマンドまたはその他の方法で電話でSSHを有効にする方法はありますか?
回答:
OpenSSHはiOS 10.2と互換性がなく、ジェイルブレイクの今後のリリースで問題が発生します。OpenSSHとOpenSSL(依存関係)の両方をアンインストールする必要があります。
組み込みのDropbearを使用する必要があります。Yalu Beta 6以降、最初にUSB経由でSSHを実行する必要があります。次に、パスワードを変更した後、他のインターフェイスでDropbearを有効にできます。
LinuxまたはmacOS:
スキャン
$ gandalf
サンプルマッピングファイル
[{"udid":"9cdfac9f74c5e18a6eff3611c0927df5cf4f2eca",
"name":"i11", "forwarding": [{"local_port":2000, "device_port":22},
{"local_port":3000, "device_port":1122}]
}]
マッピングファイルを使用してガンダルフを実行する
$ gandalf -m myMappingFile.txt
ポート2000へのSSH
$ ssh mobile@localhost -p 2000
パスワードを変更
$ passwd
$ su
$ passwd root
iOSデバイスに移動したので(パスワードが変更されましたよね?)、次のように他のインターフェイスでDropbearを有効にできます。
launchctl load
LaunchDaemonファイルを作成します。
$ cd /Library/LaunchDaemons
$ cat <<EOF > ssh10022.plist
これをターミナルに貼り付けます:
<?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>
Ctrl-Dを入力して入力を終了します。これでファイルssh10022.plistが作成されます
再起動するか、launchctlを使用します
launchctl load /Library/LaunchDaemons/ssh10022.plist
問題:
Dropbearはモバイルホームディレクトリに対するiOSのデフォルトのアクセス許可を好みません。そのため、SSHキー認証は機能しません。再起動するたびに、パスワードでログインして権限を修正する必要があります。
$ chmod go-w /var/mobile
Dropbearをデバッグするには:Dropbearログをstderrにリダイレクトします(以下の例では、ポート10023でさらに別のインスタンスを実行しています)。
$ dropbear -E -p 10023
10.2ジェイルブレイクでは、wifi経由でsshに接続できません。USB経由でsshする必要があります。いくつかのオプションがありますが、最も簡単に使用できますiproxy
。
iproxyをインストールする
brew install libimobiledevice
端末で次のコマンドを実行します。
iproxy 2222 22
これにより、ポート2222からポート22にすべてのトラフィックをUSB経由で転送できます。
これで、sshを実行してiPhoneに接続できます
ssh root@localhost -p 2222
localhost
電話のIPアドレスではなく接続することに注意してください。すべてがうまくいけば、sshプロンプトが表示されます。
動作しない場合は、実行してsshがiPhoneで実行されているかどうかを確認します。
telnet <iphone-ip-address-here> 22
接続できない場合はopenssh
、Cydiaからパッケージをインストールしてください。
Dropbear
私はインストールする必要がありました私の場合、OpenSSH
私は他の命令は、ベータ版の脱獄に基づいているように見えるようことを示唆した理由だパッケージ、
@ColinはYuluの脱獄に対して素晴らしい答えを持っていますが、私は人々に役立つかもしれないことを少し異なる方法で行いました。彼の答えは、新しい名前で新しいデーモンを作成することに焦点を当てているので、SSHを実行する2つのデーモンを効果的に使用できます。1つはUSB用、もう1つは他のTCP接続用です。すべてのインターフェースでリッスンする1つのリスナーが必要でした。私もWindowsを使用していて、Galdolfが必要としないWindowsで機能するものが必要でした。その結果、Pythonスクリプトを使用しました。Pythonスクリプトをフォークして、決して消えないようにしました。
これを使用するには、次を実行:
python usbmuxd\pythonclient\tcprelay.py -t 22:2222
上記は、ローカルポート2222をリモートポート22にマップします。これがセットアップされたら、お気に入りのSSHユーティリティを使用して接続できます。私はPuttyを使用しました。
「root」のデフォルトのユーザー名と「alpine」のパスワードですが、「mobile」のユーザー名と「alpine」のパスワードも接続に使用できます。
注:rootパスワードがわからない場合は、Filzaを使用して/etc/master.passwdの権限を666に変更してから、モバイルユーザーとしてSSH経由で、またはお気に入りのファイルエディターを使用して、そのファイルを編集してハッシュをコピーしますパスワードを同じにするために、「モバイル」から「ルート」へ。(必要な場合、「alpine」のハッシュは「/ smx7MYTQIi2M」です)。その後、rootとしてログインするか、suを使用できます。
ログインすると、現在マシン上にあるdroplist.plistのコピーを見つけることができます。これを行うにはおそらくもっと効率的な方法がありますが、次のコマンドを使用しました。
find . | grep dropbear.plist
これにより、
./Library/LaunchDaemons/dropbear.plist
./private/var/containers/Bundle/Application/023FF836-8A0A-4593-A578-6801F2A3F34D/yalu102.app/dropbear.plist
最初のエントリはアクティブデーモンですが、2番目のエントリはより重要です。脱獄を実行するたびにYuluが配置するデーモンです(再起動のたびに行う必要があります)。/Library/LaunchDaemons/dropbear.plistのみを編集すると、再起動するたびに置き換えられます。
その結果、Yuluに同梱されているものを編集しますが、ファイルをcatすると、バイナリPLIST形式のファイルに気付くでしょう。これを修正するには、plutilを取得するためにErica Utilitiesが必要 です。次に実行できます:
plutil -xml dropbear.plist
これにより、dropbear.plistがXML形式に変換されます。これが完了すると、任意のテキストエディタでファイルを編集できます。nanoを使って実際の編集を行いました。
例えば
nano dropbear.plist
ファイルを編集しているときに、最後の文字列エントリから「localhost:」を削除します。これにより、リスナーはループバックインターフェイスのみではなくすべてのインターフェイスで実行されます(これはUSB経由でのみ利用可能です)。その結果、ファイルは次のようになります。
<?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>
これが完了したら、ファイルをバイナリ形式に戻します。
plutil -binary dropbear.plist
この時点で、デバイスを再起動して、jailbreakを再実行するときにYalu dropbear.plistファイルが正しくコピーされることを確認することをお勧めします。
例えば
reboot
再起動後、電話のIPアドレスと標準ポート22を使用してSSHを実行できるはずです。
例えば