[脱獄] AppStoreのSSHクライアントアプリをMobileTerminalの代用として使う
JailbreakしたiOS上でコマンドライン操作ができる「MobileTerminal」という脱獄アプリですが、iOSのバージョンが上がる度に起動しなくなったり、動作が非常に不安定なところがあって不便なんですよね。
AppStoreにあるSSHクライアントアプリを使って自分自身に接続することでMobileTerminalの代用になるというトピックがredditにあったので、メモ程度で残しておきます。
OpenSSHをインストールするためセキュリティ的なリスクがあります。しかしサードパーティ製のアプリなので、キーボードが拡張されていたり、フォントや見た目が綺麗だったりしてかなり快適になりました。というかもうMobileTerminalいらないですw
必要なもの
- 脱獄したiOS端末
- OpenSSH
- SSHクライアントアプリ
- iFile or ファイルを書き換える手段
Prompt(800円)
カテゴリ: ユーティリティ, ビジネス
Server Auditor – SSH console and terminal(無料)
カテゴリ: ビジネス, 仕事効率化
そもそも127.0.0.1というローカルループバックアドレスに接続することで、サードパーティ製アプリがMobileTerminalの代替になるわけですが、iOS7からはsandbox内で22番のポートが使用不可になったためその解決策がredditでトピックに上がったという経緯です。iOS7以前の場合は以下に説明するファイルの書き換えは不要だと思われます。
iOS7.1.2のiPad Air上での説明ですが、iPhoneでも、iOS7.0.xでも大丈夫です。
以下実行は自己責任で。
OpenSSHをインストール
CydiaからOpenSSHをインストールします。
ついでに「SSH Switch」というFlipSwitchトグルもインストールしておくと便利かも。
※初期設定ではユーザーのパスワードが「alpine」になっているため、必ず変更するように。こちらの記事がとても参考になります。
2つのファイルを書き換える
SSHに使うポート番号を変えるために2つのファイルを書き換えます。
1. services
iFIleかなにかで
/etc/services
にある「services」というファイルを編集。(編集前にファイルのバックアップをとっておくこと)
ssh 22/udp # SSH Remote Login Protocol
ssh 22/tcp # SSH Remote Login Protocol
「ssh 22」の行を探して、その真下に2行追加して以下のようにします。
ssh 22/udp # SSH Remote Login Protocol
ssh 22/tcp # SSH Remote Login Protocol
ssh2 51022/udp #SSH Server port change
ssh2 51022/tcp #SSH Server port change
こんな感じ。
2. com.openssh.sshd.plist
「services」ファイルを保存したら、次は
/Library/LaunchDaemons/com.openssh.sshd.plist
にある「com.openssh.sshd.plist」を編集。(こちらも編集前にファイルのバックアップをとっておくといい)
<key>SockServiceName</key> <string>ssh</string>
の「ssh」を「ssh2」にします。
<key>SockServiceName</key> <string>ssh2</string>
こんな感じ
「com.openssh.sshd.plist」を保存したらデバイスを再起動して設定完了!
SSHクライアントで接続
AppStoreにあるサードパーティ製のSSHクライアントアプリで接続してみます。
自分はiPadだとPrompt(有料)がお気に入りですが、Server Auditorは無料でよさそうです。
Prompt(800円)
カテゴリ: ユーティリティ, ビジネス
Server Auditor – SSH console and terminal(無料)
カテゴリ: ビジネス, 仕事効率化
SSH接続先を「127.0.0.1」、ポート番号を「51022」、ユーザー名を「mobile」としてパスワードはデフォルトで「alpine」ですが変更している人は変更後のパスワードを入力。
接続すると黒い画面が立ち上がります。 画像は「apt-get update」でCydiaのリソースを更新したところ。通常のMobile Terminalと全く同じコマンドが使えます。
Promptアプリだとフォントの大きさやキーボードの拡張、接続時の初期コマンドが設定できてGUIのデザイン的にも綺麗です。なんといってもバックグラウンドに回っても切断しないのが良いですね。
Server AuditorならiOS7対応で、無料ながら充分使えます。(ただし日本語入力不可な模様)
まとめ
以上、サードパーティアプリでMobileTerminalの代用ができました。
AppStoreに並んでいるアプリでiPhoneやiPadのファイルシステムを直接操作できるのはなんだか新しい感覚なのですが、SSHでローカルホストに接続する手法はだいぶ前から一般的だったようですね。自分は全然知りませんでしたw
iOS7からは上記のようにファイルを弄らないと繋がらないので注意です。ちなみに変更するポート番号は51022である必要はないですが、参照元がそうだったのでそのまま持ってきました。
参考:reddit