Il comando per l'inoltro della porta 80 dal computer locale ( localhost
) all'host remoto sulla porta 8000 è:
ssh -R 8000:localhost:80 oli@remote-machine
Ciò richiede una modifica aggiuntiva sul server SSH, aggiungere le righe a /etc/ssh/sshd_config
:
Match User oli
GatewayPorts yes
Successivamente, ricaricare la configurazione eseguendo il server sudo reload ssh
.
L'impostazione GatewayPorts yes
fa sì che SSH associ la porta 8000 all'indirizzo jolly, quindi diventa disponibile all'indirizzo pubblico di remote-machine
( remote-machine:8000
).
Se è necessario disporre dell'opzione per non associare tutto sull'indirizzo jolly, passare GatewayPorts yes
a GatewayPorts clientspecified
. Poiché si ssh
associa all'indirizzo di loopback per impostazione predefinita, è necessario specificare un vuoto bind_address
per l'associazione dell'indirizzo jolly:
ssh -R :8000:localhost:80 oli@remote-machine
Il :
prima 8000
è obbligatorio se GatewayPorts
è impostato su clientspecified
e si desidera consentire l'accesso pubblico a remote-machine:8000
.
Estratti manuali pertinenti:
ssh (1)
-R [indirizzo_indirizzamento:] porta: host: hostport
Specifica che la porta specificata sull'host remoto (server) deve essere inoltrata all'host e alla porta indicati sul lato locale. Funziona assegnando un socket per ascoltare la porta sul lato remoto e ogni volta che viene stabilita una connessione a questa porta, la connessione viene inoltrata sul canale protetto e viene stabilita una connessione per ospitare l'hostport della porta dal computer locale. Per impostazione predefinita, il socket di ascolto sul server sarà associato solo all'interfaccia di loopback. Questo può essere sovrascritto specificando un bind_address. Un bind_address vuoto o l'indirizzo '*' indica che il socket remoto deve essere in ascolto su tutte le interfacce. La specifica di bind_address remoto avrà esito positivo solo se l'opzione GatewayPorts del server è abilitata (vedere sshd_config (5)).
sshd_config (5)
GatewayPorts
Specifica se agli host remoti è consentito connettersi alle porte inoltrate per il client. GatewayPorts può essere utilizzato per specificare che sshd dovrebbe consentire il port forwarding remoto da associare a indirizzi non loopback, permettendo così ad altri host di connettersi. L'argomento potrebbe essere "no" per forzare i port forwarding remoti a essere disponibili solo per l'host locale, "yes" per forzare i port forwarding remoti a legarsi all'indirizzo jolly o "clientpecified" per consentire al client di selezionare l'indirizzo a cui l'inoltro è vincolato. L'impostazione predefinita è "no".
Guarda anche:
GatewayPorts
era il proiettile magico qui. Mi piace il fatto che tu abbia trovato una versione che può permettermi di limitare questa tecnica abbastanza potente a determinati utenti.