また、技術メモです。
普段、ウェブサーバーにファイルをアップする時は 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 にアクセスした方法を書きます。
これまでに Fugu, SSHTunnel, SSH 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 を押して保存
- 終了
- メニューから、追加したトンネルをクリックして、接続されるか確認しましょう
アプリケーション (Coda 2, Dreamweaver など) 設定方法
この SSHトンネル転送では、サーバーの情報が localhost として扱われるので、Coda 2 などの SFTP ソフトでもそのように設定します。
普段の SFTP の設定と違うことは・・・
- サーバーアドレスが “localhost” になる
- ポート番号は自分が設定した “2022” 番になる
- ユーザー名、パスワード(もしくは鍵認証の鍵)情報は同じ
という感じで、Coda や Dreamweaver のサイト情報に入力します。
これで SSH Tunnel を使って、快適に安全なファイル転送が可能になりました〜ワァ──ヽ(〃v〃)ノ──イ!!