| 最近の更新 | |
|---|---|
| 夢
| 2025/10/21 |
| お出かけチェックリスト
| 2025/08/30 |
| 韓国
| 2025/08/18 |
| 音楽データをDisplayAudioで聞く
| 2025/08/18 |
| 飛行機はなぜ飛ぶか
| 2025/08/18 |
| 養老孟司
| 2025/08/18 |
| 駅探(3646)
| 2025/08/18 |
| 騙す方が悪いのか・騙される方が悪いのか?
| 2025/08/18 |
| 高麗神社
| 2025/08/18 |
| 鴨川シーワールド
| 2025/08/18 |
| 黒岩一美
| 2025/08/18 |
| 網野善彦
| 2025/08/18 |
| 縄文聖地巡礼
| 2025/08/18 |
| 老荘
| 2025/08/18 |
| 聖方位
| 2025/08/18 |
| 自分のためにやるからこそ、それがチームのためになる
| 2025/08/18 |
| 自転車
| 2025/08/18 |
| 自転車のライトに泣く
| 2025/08/18 |
| 落合史観の用語補足
| 2025/08/18 |
| 落合莞爾
| 2025/08/18 |
いつも忘れてしまうので、図付きでメモっておくφ(..)
凡例:
| | [client] ==========> [ssh-server.example.com:22] | | | --- gateweay | | | V | [www.local.lan:80] |
client$ ssh -N -L 10080:www.local.lan:80 ssh-server.example.com
(ブラウザコマンド・URLの PREFIX/TO/APP は適宜合わせること)client$ chrome http://localhost:10080/PREFIX/TO/APP
注: ssh を起動しているマシン外からのアクセスをポートフォワードさせる場合、 sshd の GatewayPorts 設定を on にしておく必要がある。 sshd_config(5) を参照。
リバース ポートフォワード(-R オプション)で同じ事を行う。
| gateway | | | [client] === | ====> [relay.local.lan] | | | | | | V | [www.local.lan:80]
relay$ ssh -N -R 10080:www.local.lan:80 client
(ブラウザコマンド・URLの PREFIX/TO/APP は適宜合わせること)client$ chrome http://localhost:10080/PREFIX/TO/APP
とすると、上の web のポートフォワードの他に client から relay に 10022 経由で ssh ログイン出来る:relay$ ssh -N -R 10022:localhost:22 -R 10080:www.local.lan:80 client
client$ ssh -p 10022 localhost
注: -L オプションと同様、 ssh を起動しているマシン外からのアクセスをポートフォワードさせる場合、 sshd の GatewayPorts 設定を on にしておく必要がある。 sshd_config(5) を参照。
| gateway | | | [com-A] ==== | ====> [relay.local.lan] | ^ | | | | | | | V | [com-A-PC] [www.local.lan:443]
relay$ ssh -N -R 10443:www.local.lan:443 com-A
(ブラウザコマンド・URLの PREFIX/TO/APP は適宜合わせること)com-A-PC$ chrome https://localhost:10443/PREFIX/TO/APP
| ex-port | [mymachine] <====== | ===== [www.ext.jp] | ↓ | in-port | [in-app]
$ ssh -R ex-port:in-app:in-port www.ext.jp
ググればいくらでもあるわけだけど、僕なりに整理しておこうかと。
やってみると、たしかに便利。 それに、scp, rsync もこれで ok ということなので、かなりよさげ。
LOCAL → GATEWAY → GOAL
の環境で、
ssh GOAL
でつながる、というもの。
LOCAL の ~/.ssh/config に以下を追加記述:
Host GOAL ProxyCommand ssh -q -W %h:%p GATEWAY
まあ、実際には GATEWAY → GOAL 接続時、専用秘密鍵指定のための -i オプションがあったりするわけで、その場合は下記となる:
Host GOAL ProxyCommand ssh -i 鍵ファイル -q -W %h:%p GATEWAY
参考: http://blog.takuo.jp/2012/03/how-to-multihopped-ssh-login.html
パスフレーズのないキーペアによる ssh ログインは便利だが、秘密鍵を そのマシンの管理者に盗まれると、無防備なことになってしまう。 そのままパスフレーズ入力なしに私のアカウントにログインでき、 恥ずかしい(いや、大事な)情報を知られたりする…。
マシン管理者のモラルに頼るのではなく、パスフレーズをセットするのが正しい (とは言え、自分がマシン管理者でもあるなら、その恐れは無いわけだ)。
アプリ用キーペアの生成
$ ssh-keygen -f ~/.ssh/[APP_NAME].id_rsa
$ ssh-keygen -p [-f keyfile]
/etc/ssh/sshd_config の以下をデフォルト値から変更する:
なお、以下は最初から no のはず:
で、sshd 再起動:
$ sudo service ssh restart