macOS で手動でトンネリング接続する方法

FileZilla という FTP ソフトは SSH トンネリング接続ができない。

例えば、IPアドレスでアクセス制限されているサーバに、接続許可されているサーバを経由して接続するのをトンネリング接続というんだけど(接続許可されているサーバがポートフォワードという方法を使って、「俺です」って嘘ついてデータのやり取りをするわけ)、FileZilla という macOS でよく使われているソフトにはその機能がない。

なので、SSH ソフトを使ってトンネリングできる環境(ポートフォワード設定)を作って、FileZilla でそれを利用する形になる。

外出先でどうしてもお客さんのサーバのデータを確認しないといけなくなったときはトンネリング接続で SFTP を利用しないといけない。Windows PC が手元にあったら WinSCP という素晴らしいソフトがあるので(毎年寄付してます!(笑))いいんだけど、Macbook Air しか持ってないときは困るのよね。

というわけで、やり方をメモしておく。

1.手元の macOS 上でターミナルを2つ起動する

2.ターミナル1でローカルからリモート方向へのトンネリングのための SSH 接続を行う

トンネリング時の入り口(SFTP接続時に指定する自分自身(localhost))のポート番号):14649
最終的に接続したいサーバの IP アドレス:210.XXX.XXX.XXX
最終的に接続したいサーバのポート番号:22(SSH 接続)

(例)14649:210.XXX.XXX.XXX:22

接続を許可されているサーバ(踏み台)のユーザ:shinoda
接続を許可されているサーバ(踏み台)のホスト名:chinko.exsample.com
接続を許可されているサーバ(踏み台)の接続先ポート番号:22(SSH接続)

(例)shinoda@chinko.exsample.com -p 22

~ % ssh -L 14649:210.XXX.XXX.XXX:22 shinoda@chinko.exsample.com -p 22
shinoda@chinko.exsample.com's password: <chinko.exsample.com にログインするときのパスワード>
Last login: Sun Dec  8 09:34:15 2024 from kd1061550.manman.exsample.com

ログインしたら、そのターミナルは閉じずにそのまま置いておく(exit すると、掘られた「トンネル」も閉じる)

3.ターミナル2で、トンネリング時の入り口ポートが接続待ちになっていることを確認

~ % netstat -na | grep 14649
tcp4       0      0  127.0.0.1.14649        *.*                    LISTEN
tcp6       0      0  ::1.14649              *.*                    LISTEN

port 14649 が LISTEN(接続待ち)になっている

4.FileZilla でローカルホストに接続

サイトマネージャを開き、トンネリング接続のための設定を行う

プロトコル:SFTP
ホスト:localhost
ポート:14649
ログオンタイプ:通常
ユーザー:最終的に接続したいサーバのログインユーザ
パスワード:最終的に接続したいサーバのログインユーザのパスワード

上記設定で接続を行えば、localhost(自分自身 macOS)→接続を許可されているサーバ(踏み台)→最終的に接続したいサーバ という経路で接続される。
「最終的に接続したいサーバ」から見たら、「接続を許可されているサーバ(踏み台)」から接続してきていると思っているが、実はこっそり掘ったトンネルを通って localhost が接続しているという形。

上記の動きを、FileZilla ではなくターミナル上で確認してみることもできる。
ターミナル2で以下のように、「最終的に接続したいサーバ」にログインできることを確認する
(以下の例は、初めての接続だったので、「このホスト、本物?信用していい?」と聞かれてます(笑))

~ % ssh -l root localhost -p 14649
The authenticity of host '[localhost]:14649 ([::1]:14649)' can't be established.
ED25519 key fingerprint is SHA256:4hlxCQFIfF<略>+0Cf0.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:14649' (ED25519) to the list of known hosts.
最終的に接続したいサーバのログインユーザ@localhost's password: <最終的に接続したいサーバのログインユーザのパスワード>
Last login: Sun Dec  8 09:28:46 2024 from 159.XXX.XXX.XXX

これで、「最終的に接続したいサーバ」にログインできれば「トンネル」が作られているということ。

・・・いやぁ、面倒くさいな(笑)。

Cyberduck であればトンネリング SSH 接続の設定ができるみたいなんで、そっちにするか・・・(^^;;;

トラックバック(0)

このブログ記事を参照しているブログ一覧: macOS で手動でトンネリング接続する方法

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/6910

コメントする

このブログ記事について

このページは、shinodaが2024年12月 8日 12:54に書いたブログ記事です。

ひとつ前のブログ記事は「macOS でターミナルのプロンプト変更」です。

次のブログ記事は「Cyberduck、全然 SFTP 接続できん・・・」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら