현재 나는 이것을 제어 경로로 사용하고 있습니다.
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