역방향 SSH 터널(또는 그 이상)을 설정하고 싶습니다 OpenSSH_7.4
. 목적은 중앙 서버에서 무엇보다도 터널 설정 작업을 수행하는 여러 장치로 SSH 연결을 허용하는 것입니다. 중앙 서버에는 알려진 IP가 있지만 장치에는 없습니다.
나는 보통 다음과 같이 장치 중 하나에서 이 작업을 수행합니다.
ssh -R "4001:server:22" -p 22 user@server
이렇게 하면 서버에서 장치에 연결할 수 있습니다.
ssh -p 4001 deviceuser@localhost
이것은 작동합니다(그리고 장치의 IP 주소를 알 필요가 없습니다).
이제 단일 장치 대신 여러 장치에 연결하고 있는데, 각 장치는 역방향 터널을 생성하고 서버에 별도의 포트가 필요합니다. 게다가 SSH를 통해 각각에 반복적으로 연결하고 싶습니다.
그래서 나는 다음과 같은 소켓을 사용하여 역방향 터널을 설정하려고 생각했습니다.
ssh -R "~/tmp/device.sock:server:22" -p 22 user@server
서버에서 장치에 연결하려면
ssh -S ~/tmp/device.sock -p 22 deviceuser@device
이 장치의 IP가 필요하지만 그게 주요 문제는 아닙니다. 그러나 나는 그것을 작동시킬 수 없는 것 같습니다. 첫 번째 명령은 소켓을 생성하지만 두 번째 명령을 사용할 때 다음과 같은 오류가 발생합니다.
Control socket connect(/home/user/tmp/device.sock): Connection refused
예상되는 동작은 위의 포트 4001의 터널과 마찬가지로 터널을 통해 장치에 연결할 수 있지만 소켓 파일을 기반으로 한다는 것입니다. 간결한 리소스를 찾을 수 없으며 내가 시도하는 것이 실제로 가능한지 알고 싶습니다.
먼저 포트 4001에 대한 터널을 만든 다음 소켓을 사용하여 SSH 제어 연결을 시작할 수 있다고 가정합니다. 하지만 여전히 서버에서 여러 포트를 사용해야 합니다. 내 목적에 맞게 사용할 수 있는 포트가 충분하지만 이를 수행하는 좀 더 우아한 방법을 원합니다.