iOS 10.2でOpenSShを有効にする方法


9

iOS 10.2で動作するiPhone 6をうまく脱獄しました。

CydiaでOpenSSHをインストールし、MobileTerminalでデフォルトのパスワードを変更しました。

唯一の問題は、を実行ssh root@my_iPhone_ip_addrするとハングするだけで、接続されないことです。

SSHトグルスプリングボードアプリケーションを試しましたが、まだハングします。

端末コマンドまたはその他の方法で電話でSSHを有効にする方法はありますか?


iPhoneトンネルを使用して、USB経由でSSH経由でデバイスに接続します:code.google.com/archive/p/iphonetunnel-mac/downloads
newenglander

回答:


9

このツイートは10.2脱獄のリリース前に作成されたため、非常に不安定な10.1.1脱獄について言及していると確信しています。更新されたソースはありますか?
Wowfunhappy 2017年

grgarsideのアドバイスに従ってください:OpenSSHをアンインストールします。SSHを元に戻すための詳細な手順については、私の投稿を参照してください。
コリン

6

組み込みのDropbearを使用する必要があります。Yalu Beta 6以降、最初にUSB経由でSSHを実行する必要があります。次に、パスワードを変更した後、他のインターフェイスでDropbearを有効にできます。

LinuxまたはmacOS:

  1. ocaml-usbmux githubページからgandalfバイナリ(運がゼロのコンパイルがありました)をダウンロードします。macOS:gandalf_darwin_10_11_x86_64
  2. デバイスをUSBケーブルで接続し、スキャンします。
  3. udidをマッピングファイルに入れます。device_port 22(ssh)がマップされていることを確認してください!
  4. マッピングファイルを使用してgandalfを実行する
  5. マッピングファイルのdevice_port 22に対応するlocal_portにSSHで接続します。
  6. パスワードalpineでログインします。
  7. パスワードを変更してください!!!

スキャン

$ 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を有効にできます。

  1. LaunchDaemonファイルを作成して、Dropbearの2番目のインスタンスを起動します。
  2. 再起動または使用 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

6

10.2ジェイルブレイクでは、wifi経由でsshに接続できません。USB経由でsshする必要があります。いくつかのオプションがありますが、最も簡単に使用できますiproxy

  1. iproxyをインストールする

    brew install libimobiledevice

  2. 端末で次のコマンドを実行します。

    iproxy 2222 22

    これにより、ポート2222からポート22にすべてのトラフィックをUSB経由で転送できます。

  3. これで、sshを実行してiPhoneに接続できます

    ssh root@localhost -p 2222

localhost電話のIPアドレスではなく接続することに注意してください。すべてがうまくいけば、sshプロンプトが表示されます。

動作しない場合は、実行してsshがiPhoneで実行されているかどうかを確認します。

telnet <iphone-ip-address-here> 22

接続できない場合はopenssh、Cydiaからパッケージをインストールしてください。


脱獄の作者であるqwertyoruiopがOpenSSHをインストールしないように特に指示しているため、おそらくOpenSSHのインストールを提案すべきではありません。
コリン

1
私が使用して接続できませんでしたDropbear私はインストールする必要がありました私の場合、OpenSSH私は他の命令は、ベータ版の脱獄に基づいているように見えるようことを示唆した理由だパッケージ、
ジョセフ・

本当じゃない。10.2 Jailbreakを使用すると、SSH経由でWifiに接続できます。すべてのインターフェースでリッスンするために、dropbear設定を更新する必要があるだけです。
Doug

@Dougが回答を編集し、wifi経由でSSHを有効にする手順を記述します。
ジョセフ

3

@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を使用しました。

  • ホスト:127.0.0.1
  • ポート:2222

「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を実行できるはずです。

例えば

  • ホスト:(設定からのIP-> WiFi->(WIFI名)
  • ポート:22

すべての手順を詳しく説明していただきありがとうございます。これにより、将来性が大幅に向上します。試しました>見つけました。| grep dropbear.plistを使用して、LiberIOS脱獄のdropbear構成を検索しますが、どこに構成を配置するのかわかりません。
コリン

1
/ Library / LaunchDaemons /に移動して、そこで使用されている名前がわかるかどうかを確認してください。ほとんどの場合、彼らはどこでも同じ名前を使用していました。そのフォルダはすべてのデーモンスクリプトがある場所なので、既存のデーモンがある場合、そこで参照する必要があります。
Doug

findを実行する前にcd /するのを忘れました。| grep dropbear.plist。ええと。
コリン

これにより、Impactorを使用してデバイスにアップロードする前に、Yalu IPAのDropbear.plistをハッキングすることを提案できることに気付きました。しかし、繰り返しになりますが、macOSではXcodeを使用してバイナリ.plistファイルを直接編集できますが、そのような機能がWindowsまたはLinuxに存在するかどうかはわかりません。
コリン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.