iPhone Tips/OpenSSH
出典: Fukudat.com
iPhoneにネットワーク越しにログインすることを可能にする.
1 パスワードの変更
ssh とは本来関係ないけど,これを行わずに OpenSSH をインストールするとすぐにウィルス(正しくはワームだけど)に感染します.
jailbreakした直後の root および mobile のパスワードは "alpine". このままだとセキュリティー上問題なので,適当なパスワードに変更する.PCから
$ ssh root@iphone.fukudat.com Password: alpine iPhone:~ root# passwd Changing password for root. New password: xxxxx Retype new password: xxxxx iPhone:~ root# passwd mobile Changing password for mobile. New password: xxxxx Retype new password: xxxxx iPhone:~ root# exit
- ただし,ここでiphone.fukudat.com は iphone のホスト名
とでもすればよい.
2 パスワードなしでのログイン
~root/.ssh にパブリックキーを置く.PCから
$ ssh root@iphone.fukudat.com "mkdir .ssh; chmod 500 .ssh" $ scp .ssh/id_dsa.pub root@iphone.fukudat.com:.ssh/authorized_keys2 $ ssh root@iphone.fukudat.com "chmod 400 .ssh/authorized_keys2"
とでもすればいいか.mobile でも同様にしておくとよいかも.(root を mobile に代えて,上を実行)
パーミッションに注意.要するに,本人以外が
- ~/.ssh を読めてはいけない
- ~ に書きこめてはいけない
3 パスワードでのログインを禁止する
OpenSSHを動かしていると,外部から侵入しようと攻撃をうける可能性がある.パスワードを分かりにくいものに変更していても,絶対安全とは言えない.このため上記のように証明書でのログインの設定したうえで,rootのログインとパスワードでのログインを禁止しておく.今後自分が使うときは,証明書 (id_dsa) があるPCからmobileユーザでログインする.
iPhoneにログインして,/etc/ssh/sshd_config (ssh_configではないので注意) を編集して,以下の行を加える.
PermitRootLogin no PasswordAuthentication no
これで root でログインすることができなくなるとともに,パスワードでのログインができなくなる。 この設定後ログオフするまえに,OpenSSHを再起動して,別の端末からちゃんと証明書を使ってログインできるかどうか確かめておくとよい. (設定を間違えるとMobileTerminalから直さなければならなくなるので)
なお,この変更はOpenSSHを再インストールすると無効になる.
