SSH構成ファイルでLocalForwardを使用するシェルコード

SSH構成ファイルでLocalForwardを使用するシェルコード

SSH構成ファイルにこの構成があります。

Host *+*
ProxyCommand ssh $(echo %h | sed -e 's/+[^+]*$//;s/\([^+=]*\)=\([^+]*\)$/\2 -l \1/; s/^\([^+:]*\):\([0-9]*\)+/-p \2 \1+/') -W $(echo %h | sed -e 's/^.*+//; s/:.*$//;'):$(echo %h | sed -e 's/^.*+//; /:/!s/^.*/22/; s/^.*://' ;)

これにより、次のような基本的なホストホッピングを実行できます。

ssh host1+host2 # will ssh into host2 via host1

LocalForwardなぜcommand()で-L同じことをしようとしますか?私は成功せずにこのようなことを試しました。

Host host1+*
    user root
    Hostname %h
    ProxyCommand ssh host1 -W %h:%p
    LocalForward 0.0.0.0:8080 $(echo %h | awk -F'+' '{print $2}'):80

よろしくお願いします。

ベストアンサー1

これSSH構成ファイルシェルコードは取得または評価されません。

最初の操作が機能する理由は、エージェントのコマンド呼び出しの一部としてシェルで実行されるためです。

LocalCommandしかし、プロキシコマンドを呼び出すのと同じように使用することもできると思いましたssh -f -L...。私はこれをやったこともなく、見たこともありません。また、見ることができますPermitLocalCommand

おすすめ記事