事象 : .ssh/configにポートフォワードを設定して接続しようとしたらエラーになった
- 環境
- Windows 10 Pro バージョン32H1
- OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
$ ssh hostname
C:\\Users\\chovin/.ssh/config line 46: Missing target argument.
Host hostname
HostName 123.4.5.678
User chovin
IdentityFile id_rsa
Port 12345
LocalForward 38080 123.4.56.98:8080
原因 : LocalForwardで接続元のポートの後に「:」があるから
configに設定を書く前にポートフォワードできることを確認しました。
$ ssh -L 38080:123.4.56.98:8080 -i .ssh/id_rsa chovin@123.4.5.678 -p 12345
そして、その確認したコマンドをconfigに転記しました。
コマンドでポートフォワードは{接続元のポート}:{接続先}:{接続先のポート}
configのLocalForwardは{接続元のポート} {接続先}:{接続先のポート}
と指定します。
{接続元のポート}の後に「:」「 (スペース)」のどちらが来るかが異なるのです。
気が付けば大したことではないのですが、気が付くまでしばし悩んでしまいました。
対応 : 接続元のポートの後にスペースを書く
Host hostname
#...省略...
LocalForward 38080 123.4.56.98:8080