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

관련 정보