Mac OS X で簡単に SSH Tunnel を構築する方法

また、技術メモです。

普段、ウェブサーバーにファイルをアップする時は FTP や SFTP を使います。

しかし、セキュリティ管理にシビアなサーバーにアクセスするときには、最終のウェブサーバーの外部SSHポートが閉じられ、外部ネットワークのローカルネットワークからしかアクセス出来ない、特定の IP アドレスからしかアクセス出来ないなどの制限があります。

そんな時、SSH Tunnel という VPN を構築し、セキュリティを一段階強固な形にしてサーバーにアクセスすることができます。

Windows では WinSCP というソフトで SSH Tunnel を使った SFTP アクセスなどが簡単にできるのですが、自分は Mac OS X で Coda 2 というコーディングソフトを使っています。

Mac で、WinSCP と同じ、一発で SSH Tunnel を介して SFTP サーバーなどにアクセスできるソフトはありませんでしたので、今回は、SSH Tunnel を別のアプリで構築して  localhost に Port Forward (ポート転送) して、Coda 2 にアクセスした方法を書きます。

これまでに FuguSSHTunnelSSH Tunnel Manager というソフトを試しましたが、これらは RSA 鍵認証ができませんでした。

Meekat というシェアウエアも見つけましたが、有料ソフト (*) なのでパス。しかし、高機能なので本格的に仕事で使い出したら購入するかも。

(2014/6/6 追記:Meekat 開発終了ということで無料になっていました。こちらもおすすめツールですが、今後の Mac OS X バージョン対応が見込めないので今後は注意。)

数日間に及ぶリサーチの結果「Coccinellida」というソフトに落ち着きました!

このソフト、オープンソースソフトで今日の時点では開発版。ちょっと、フリーズしやすかったり、インターフェースが貧弱で、最初、起動しているのかわかりませんでした。

起動すると、名前の通り、てんとう虫アイコンが上部メニューに申し訳なさそうに追加されるだけで、ドックスには何も表示されません。

それ以外は Meekat と変わらないくらい高機能なので、普通の人はこれで十分だと思います。

用意しなければいけないアクセス情報

サーバー A:最終的にアクセスしたい SFTP サーバー

アドレス

ユーザー名

パスワードもしくは鍵 (rsa_id) ファイル

ポート番号 (例: 22 等)

サーバー B:SSH トンネル用の踏み台サーバー

アドレス

ユーザー名

パスワードもしくは鍵 (rsa_id) ファイル

ポート番号 (例: 22 等)

自分の Mac

アドレスは: localhost

転送先ポート番号。今回は「2022番」にしますが自由に決められます

Coccinellida で SSH Tunnel 情報を設定

  • Coccinellida をインストールして起動
  • 画面右上、時計のあるメニューバーより、てんとう虫のアイコンをクリックし、メニューから”Preference”
  • “Tunnels”TABをクリック
  • “Add” をクリック
  • “General” タブでは、以下の情報を入力
    • Name: 自分の好きな名前 (管理用)
    • Host: IP-B (SSH Tunnel サーバー用のIPなどのアドレス)
    • User: IP-B SSH Tunnel サーバーのログイン ID
    • Password もしくは “id_rsa” 鍵ファイルを「identity」より選択
  • “Port Forwarding” タブでの設定方法
    • “Add” をクリック
    • Type は “Local” を指定
    • “Local Port” に “2022” を入力  (ここのポート番号は自分の好きな番号に変えられます)
    • “Local Host” は “localhost” のままをキープ
    • “Remote Host” には、最終的にアクセスしたい IP-A のアドレスを入力
    • “Remote Port” には “22” と入力 (22番意外であれば、その番号に適宜変える)
    • Save を押して保存
  • 終了
  • メニューから、追加したトンネルをクリックして、接続されるか確認しましょう
Local Port の番号は 2022 が普通ですが、しかし、他のアプリなどとバッティングする場合などもありますので、適宜ポート番号を変えてください。

アプリケーション (Coda 2, Dreamweaver など) 設定方法

この SSHトンネル転送では、サーバーの情報が localhost として扱われるので、Coda 2 などの SFTP ソフトでもそのように設定します。

普段の SFTP の設定と違うことは・・・

  • サーバーアドレスが “localhost” になる
  • ポート番号は自分が設定した “2022” 番になる
  • ユーザー名、パスワード(もしくは鍵認証の鍵)情報は同じ

という感じで、Coda や Dreamweaver のサイト情報に入力します。

これで SSH Tunnel を使って、快適に安全なファイル転送が可能になりました〜ワァ──ヽ(〃v〃)ノ──イ!!