暗号化されていない小さなカスタム ファイルを使用した例を次に示します。この例では、ファイル名は.authinfo_iphone
で、1 行しか含まれていません。これを使用して、脱獄した iPhone に ssh 経由で接続します。
machine localhost login root password alpine port ssh
次に、小さな関数を使用して接続します。
(defun lawlist-remote-iphone-data ()
(interactive)
(let ((auth-sources '("/Users/HOME/.0.data/.0.emacs/.authinfo_iphone")))
(find-file "/ssh:root@localhost#2222:/private/var/mobile/.0.data/")))
などの外部ユーティリティを使用sshpass
して、関数を作成することもできます。コマンドラインは次のようになります。
/usr/bin/sshpass -p 'my-password' ssh my-username@12.34.56.789
そして、そのコマンド ラインを組み込んで ssh 経由で iPhone にログインする関数の例を次に示します。という名前のプロセスを持つシェルモード バッファが既に開いていると考えられ*shell*
ます。
(defun shell-iphone ()
"From an existing shell buffer with a process named `*shell*`,
log-in to the iPhone using sshpass."
(interactive)
(let* (
(password "alpine")
(port "2222")
(username "root")
(host "localhost")
(sshpass "/Users/HOME/.0.data/.0.emacs/bin/sshpass")
(ssh "/usr/bin/ssh")
(dir "/private/var/mobile/.0.data"))
(comint-send-string "*shell*"
(mapconcat 'identity `(
,sshpass
"-p"
,password
,ssh
"-p"
,port
"-l"
,username
,host
"-t"
"\"cd " ,dir " && bash --login\"") " "))
(comint-send-input)))