どこでもMyMacがあればSSH接続できる

最近メジャーなリモートソフトにTeamViewerというものがあります。 VNCのように相手のPCをリモート操作できるソフトウェアの一種ですが、これは同一ソフトウェアが入っていれば出先だろうが同一LAN内だろうがどこでもリモート操作ができる便利なものです。

ただ、GUIでの操作ではなんら問題がないものの、CUIで操作するときわざわざGUIリモートを開いてiTerm開いて・・・というのはどうも億劫だったので、TeamViewerのような仕組みでSSH接続できるのかなと調べてみたところ、あっさり見つかりました。

ただ、一つ問題がありますが・・・

参考サイト:iCloud を利用して自宅の Mac へ SSH する – talkabout

設定でリモートログインとどこでもMyMacを有効にする

SSH接続の前に、リモートログインとどこでもMyMacを有効にする必要があります。

リモートログインを有効にする

この作業はSSHを受ける側に設定します。

  1. 「システム環境設定」を起動
  2. 「共有」を開く
  3. 「リモートログイン」にチェックを入れる
  4. アクセスの許可「次のユーザのみ」にチェック
  5. 「+」をクリックしてSSH接続をしたいユーザを追加

どこでもMyMacを有効にする

この作業は両方のPCに設定する必要があります。

  1. 「システム環境設定」を起動
  2. 「icloud」を開く
  3. 「どこでもMyMac」にチェックを入れる

どこでもMyMacを有効にすると、グローバルアドレスとIPv6が割り当てられるようです。

ホスト名を割り出してSSH接続する

まず、SSHを受ける側のPCでターミナルを開き、以下のコマンドでホスト名を確認します。

$ hostname
PC名.local 

「PC名.local」の「.local」を省いた名前を控えておいてください。 次に、iCloudのアカウント番号を取得します。 ここからはSSHを行う側のPCで作業してください。

$ dns-sd -E
Looking for recommended registration domains:
DATE: ---Tue 06 Jan 2015---
10:22:01.118 ...STARTING...
Timestamp Recommended Registration domain
10:22:01.119 Added (More) local
10:22:01.119 Added icloud.com
- > btmm
- - > members
- - - > 123456789

dns-sdコマンドで出力された最後の数字の所がアカウント番号です。 これまで得た情報を組み合わせて出たものがグローバルのホスト名となります。

PC名.アカウント番号.members.btmm.icloud.com 

このホスト名の先頭に設定のリモートログインで追加したユーザ名を付加すればSSH接続できます。

$ ssh ユーザ名@PC名.アカウント番号.members.btmm.icloud.com 

どこでもSSHできるようになった!けど…

これで、ルータの設定変更を行わなくてもSSH接続できるようになりました。 ただ、レスポンスがものすごく遅いです。 どこでもMyMacを有効にしたときに、「NAT-PMPとUPnPが無効になっているため、どこでもMyMacの動作が遅くなっている可能性があります」というメッセージが出るので、結局はルータの設定がいるのかなぁみたいな感じです…多分、NAT-PMPは5351、UPnPは1900ポートを開放すれば行けるかな?でも5351ポートは狙われやすいとか書かれているのでどうしたものか…

カテゴリー: Mac タグ:

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中