HostNameのSSH構成のプレースホルダー

HostNameのSSH構成のプレースホルダー

次の部分を単純化しようとしています。

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

関連情報