仕事効率化ブログ

無駄を省き、豊かな人生を送る。

スマホからSSHで自宅のMacへ接続する方法 (前編)

f:id:jrkl:20140616155642j:plain

外出先で、ちょっとした空き時間ができたとき喫茶店などで、Macで作業を行いたいときありますよね?
かといってMacを常に持ち歩くのも重いし嫌です。
 
今回は、自宅のMacにAndroidのスマホからSSHでログインし使い倒す方法について紹介します!

 
SSHによる外部アクセスのメリットは?

  1. 外出先でも家のリッチなMacのリソースが利用できる。
  2. 重いPC持ち歩かなくてよい。
  3. スマホの大画面化、高解像度化によりスマホ画面でもストレスなく作業できる。
  4. MacMiniの消費電力は稼働時平均たったの18W!
  5. LTEの普及によりアクセスも割と安定している。
  6. 暗号化されるので安全

 
手順は以下のようになります。

  1. Macの共有設定をする。
  2. 認証キーを作成する。
  3. SSHの設定を変更する。
  4. 自宅のルータのグローバルIPを調べる。
  5. SSHクライアントアプリをダウンロードする。
  6. 接続・動作確認

 

環境

 
 
さて、順を追ってやっていきましょう。
1.Macの共有設定をする。
 
まず始めに、SSH接続を許可する設定をMac側で行う必要があります。

メニューからAppleマーク-システム環境設定を開く。→共有を選択
f:id:jrkl:20140621160340p:plain

 
リモートログインにチェック
f:id:jrkl:20140621160417p:plain
 
赤枠で囲った部分は、ssh [ユーザID]@[MACのローカルアドレス]
となります。
 
ユーザIDローカルアドレスどちらもログインする際に必要になるので覚えておきましょう。
 
2.認証キーを作成する。

SSHでログインするためのキーを作成します。
必要なキーは秘密鍵と公開鍵になります。
 
Macでターミナルを起動。

$ cd ~/.ssh/      ←.sshに移動
$ ssh-keygen -t rsa   ←キーを作成

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

途中、キーのパスフレーズを設定できますがそのままEnterで問題無いです。
~/.sshに作成されるid_rsa が秘密鍵で、id_rsa.pub が公開鍵になります。
 
id_rsa.pubは、authorized_keysに変更してアクセス権も変更しておきましょう。

$ cat id_rsa.pub >> authorized_keys   ←キーをauthorized_keysへコピー
$ chmod 600 authorized_keys       ←アクセス権変更


次に、作成した秘密鍵(id_rsa)をスマホへ移動します。
ここで秘密鍵が流出してしまうと認証の意味が全くなくなってしまうので、慎重に行いましょう。
 
コピーする方法は様々ですが、Android File Transfer等のソフトでUSB接続でコピーするのが確実かと思います。
 
コピーが終わったら、Macにあるコピーもとの秘密鍵(id_rsa)は忘れずに消しておきましょう。
スマホのどのフォルダに置くかは自由ですが、私はローカルのDataフォルダに置きました。
 
SSHの設定を変更する。
 
ここはセキュリティの要なのでしっかりやっていきましょう。
具体的には、sshd_configを変更します。
 

$ sudo cp /etc/sshd_config /etc/sshd_config.back  ←バックアップをとっておく
$ sudo vim /etc/sshd_config
 
ファイルを開いたら以下のように変更(確認)してください。

●rootでのログインを禁止
 PermitRootLogin no

●RSA公開鍵認証の有効化
 RSAAuthentication yes
 PubkeyAuthentication yes

●authorized_keysへのパス
 AuthorizedKeysFile /XXXX/.ssh/authorized_keys

●rhostでの接続不許可
 RhostsRSAAuthentication no

●パスワード認証不許可(ブルートフォースアタック対策)
 PasswordAuthentication no

●空のパスワード不許可
 PermitEmptyPasswords no
●チャレンジレスポンス認証不許可
 ChallengeResponseAuthentication no

変更が終わったら保存してvimを閉じる。
 
次は、SSH接続の際に用いるポートを変更します。
SSHはデフォルトで22番ポートを使用するようになっています。
 
私もはじめは、そのまま22番ポートを解放し使っていましたが、アクセスログをみると不審なIPから頻繁に認証を試みている形跡がみられました。
もちろんログインはできていませんでしたがあまり気持ちいいものではないです。
 
使用するポートを変更したところ、ぱったりとアクセスはやみました。
ここでも一応変更しておきましょう。

$ sudo vim /etc/services
 
ssh 22/udp # SSH Remote Login Protocol
ssh 22/tcp # SSH Remote Login Protocol

となっているところを
ssh 10022/udp # SSH Remote Login Protocol
ssh 10022/tcp # SSH Remote Login Protocol

 
へ変更しましょう。これで、SSHで使用されるポートが22→10022へ変更されます。
保存終了後
$ sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
$ sudo launchctl load /System/Library/LaunchDaemons/ssh.plist
 
これでSSHの設定は完了です。

4.自宅のルータのグローバルIPを調べる。
 
ルータのグローバルIPを調べる方法は簡単です。
今自分が使っているMacから以下のサイトにアクセスすればわかります。
http://www.cman.jp/network/support/go_access.cgi
 
グローバルIPは基本的には固定ではなく、停電などが発生すると変動してしまいます。
プロバイダによっては無料で固定IPを付与してくれるところもあるので、調べてみてください。
DDNSを用いてもいいと思います。
 
ただ、私はIP固定してませんが、ほぼ変わることはないようですので実使用上ほとんど問題ないです。
 
今度は、ルータの設定です。
ルータには、10022ポートを解放し、10022ポートで外部からアクセスがあった場合、MacのローカルIPへ中継するという設定を行う必要があります。
これは、自分の使用しているルータの取説で調べてください。
 
ちなみに私が使用しているBuffaloのルータでは、ブラウザのURLに192.168.11.1入力。
root/パスなしでログインし、以下のようにすることで設定できました。
 
f:id:jrkl:20140621155306j:plain
それぞれ、解放するポート番号と、先ほど調べたMACのローカルアドレスを入れています。
 
次は、SSHクライアントアプリをダウンロードする。
です。
 

APPLE Mac mini/ 2.5GHz Dual Core i5 /4G/500G/USB3/Thunderbolt MD387J/A

APPLE Mac mini/ 2.5GHz Dual Core i5 /4G/500G/USB3/Thunderbolt MD387J/A

インテル Boxed SSD 530 Series 240GB MLC 2.5inch Reseller BOX SSDSC2BW240A4K5

インテル Boxed SSD 530 Series 240GB MLC 2.5inch Reseller BOX SSDSC2BW240A4K5

記事についていいね!と思ったら是非、下のボタンぽちっとお願いします(^_^)/