現在私はこれを制御パスとして使用しています。
ControlPath /home/user/.ssh/sockets/ssh_mux_%h_%p_%r
ホスト名「redishost」に接続すると、redishostでソケットが生成されます。
IPアドレスを使用して同じホスト「redishost」に接続すると、IPアドレスでソケットが作成されます。
すべてのSSH接続に対して制御パスでホスト名%hの代わりにipを使用できますか?
答え1
リモートホストを参照するために使用できる唯一のトークンは%hなので、これは不可能に見えます。バラよりhttps://man.openbsd.org/ssh_config#TOKENS。
ホスト名の代わりにIPアドレスを使用するようになった動機について詳しく教えてください。おそらく私たちはこの問題に対する代替解決策を見つけるでしょう。
答え2
openssh don't have any token for controlpath expression where ip address can be specified.
opensshドキュメントとソースコードを確認した結果、使用したい場合は私のリポジトリを使用できることがわかり、opensshソースコードを編集してIPアドレス解決のために%xトークンを追加しました。
ControlPathは次のようになります。
ControlPath /home/user/.ssh/sockets/ssh_mux_%x_%p_%r
ControlPathでサポートされているトークン:
"l", thishost,
"n", host_arg, "n", host_arg,
"p", portstr, "p", portstr,
"x", hostip,
"r", options.user, "r", options.user,
"u", pw->pw_name, "u", pw->pw_name,
"i", uidstr, "i", uidstr,
"h", host,
https://github.com/akhilin/openssh-portable/commit/a2d95e090b73f36590e8c189685ce8cea810f49a