로컬 시스템 ( localhost
)에서 포트 8000의 원격 호스트로 포트 80을 전달하는 명령 은 다음과 같습니다.
ssh -R 8000:localhost:80 oli@remote-machine
SSH 서버에 대한 추가 조정이 필요합니다 /etc/ssh/sshd_config
.
Match User oli
GatewayPorts yes
그런 다음 서버를 실행하여 구성을 다시로드하십시오 sudo reload ssh
.
이 설정 GatewayPorts yes
은 SSH가 와일드 카드 주소에서 포트 8000을 바인드하므로 공용 주소 remote-machine
( remote-machine:8000
) 에서 사용할 수있게됩니다 .
와일드 카드 주소의 모든 내용을 바인딩하지 않는 옵션이 필요한 경우로 변경 GatewayPorts yes
하십시오 GatewayPorts clientspecified
. 때문에 ssh
기본적으로 루프백 주소에 바인딩, 당신은 빈을 지정할 필요가 bind_address
와일드 카드 주소를 바인딩 :
ssh -R :8000:localhost:80 oli@remote-machine
은 :
이전 8000
경우 필수 GatewayPorts
로 설정 clientspecified
하고 공용 액세스를 허용 할 remote-machine:8000
.
관련 수동 발췌문 :
ssh (1)
-R [bind_address :] port : host : hostport
원격 (서버) 호스트의 지정된 포트가 로컬 호스트의 지정된 호스트 및 포트로 전달되도록 지정합니다. 이것은 소켓이 원격 측의 포트를 청취하도록 할당하여 작동하며이 포트에 연결될 때마다 보안 채널을 통해 연결이 전달되고 로컬 시스템에서 호스트 포트 호스트 포트에 연결됩니다. 기본적으로 서버의 청취 소켓은 루프백 인터페이스에만 바인딩됩니다. bind_address를 지정하여이를 대체 할 수 있습니다. 빈 bind_address 또는 주소 '*'는 원격 소켓이 모든 인터페이스에서 수신해야 함을 나타냅니다. 원격 bind_address를 지정하면 서버의 GatewayPorts 옵션이 활성화 된 경우에만 성공합니다 (sshd_config (5) 참조).
sshd_config (5)
GatewayPorts
원격 호스트가 클라이언트에 전달 된 포트에 연결할 수 있는지 여부를 지정합니다. GatewayPorts를 사용하여 sshd가 원격 포트 전달이 비 루프백 주소에 바인드되도록 허용하여 다른 호스트가 연결할 수 있도록 지정할 수 있습니다. 인수는 원격 포트 전달을 로컬 호스트에서만 사용 가능하게하려면 '아니오', 원격 포트 전달을 와일드 카드 주소에 바인드하려면 'yes'또는 클라이언트가 주소를 선택할 수 있도록 'clientspecified'일 수 있습니다. 전달이 바인딩됩니다. 기본값은 '아니오'입니다.
또한보십시오:
GatewayPorts
여기에 총알이있었습니다. 이 강력한 기술을 특정 사용자로 제한 할 수있는 버전을 찾았습니다.