次の部分を単純化しようとしています。
Host sandbox*
Port 22
User myUser
ProxyCommand=nc -X 5 -x gateway.test.io:1080 %h %p
Host sandbox9
HostName 1.0.9.10
Host sandbox10
HostName 1.0.10.10
Host sandbox11
HostName 1.0.11.10
ホスト名に%hを使用できることを読んでいます。
Host sandbox*
Port 22
User myUser
ProxyCommand=nc -X 5 -x gateway.test.io:1080 %h %p
HostName 1.0.%h.10
ただし、sshを使用しようとすると、次のエラーが発生します。
❯ ssh sandbox9
nc: connection failed, SOCKS error 8
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535
ChatGPTは最初に最初のアプローチが機能しなければならないと言い、次のように言います。
%hプレースホルダーは、SSH構成ファイルのHostNameディレクティブでホスト名を変数に置き換えるために直接使用することはできません。この特定のディレクティブでは、プレースホルダの使用はサポートされていません。
私は何が間違っていましたか?
答え1
OpenSSHクライアントのバージョンでは、%h
プレースホルダは元のホストに傍受されることなくプレースホルダに%n
置き換えられます。
プレースホルダを使用して同じ設定を試してください%n
。
Host sandbox*
Port 22
User myUser
ProxyCommand=nc -X 5 -x gateway.test.io:1080 %n %p
次のコマンドを使用して、OpenSSH クライアントのバージョンを確認できます。ssh -V