다음 부분을 단순화하려고 합니다.
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