最近の更新 | |
---|---|
ドライランのありがたみを改めて知る
| 2024/04/04 |
伊豆半島
| 2024/03/31 |
お出かけチェックリスト
| 2024/03/29 |
Ruby
| 2024/03/27 |
Kubernetes
| 2024/03/22 |
音楽データをDisplayAudioで聞く
| 2024/03/09 |
Redmine
| 2024/02/05 |
git
| 2024/02/02 |
経済
| 2024/01/08 |
どうする家康
| 2023/12/17 |
MX-Linux
| 2023/11/06 |
國體関連学-休学のご連絡
| 2023/08/13 |
Debian
| 2023/08/02 |
CentOS
| 2023/06/13 |
Dell-XPS13
| 2023/05/23 |
ベルト
| 2023/05/18 |
SourceForge
| 2023/04/17 |
確定申告
| 2023/02/19 |
さらば「まぐまぐ」
| 2023/01/09 |
風猷縄学
| 2022/11/23 |
いつも忘れてしまうので、図付きでメモっておくφ(..)
凡例:
| | [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