SSH kommandoskal
Bakgrund
När man ansluter till en host med ssh så kan man också göra port forward till det interna nätet. Detta görs på kommandoraden som exempelvis:
ssh user@host -L local_port:remote_hostname:remote_port
På detta sett kan man senare ansluta till localhost:local_port och då blir anslutningen vidarebefodrad till remote_hostname och port remote_port vilket är mycket praktiskt för att nå maskiner på det interna nätet.
Man kan även göra en reverse port forward med -R enligt:
ssh user@host -R remote_port:local_host:local_port
Detta gör så att en användare som ansluter till remote_port på den host du ssh:ar till kommer i stället hamna på din local_host:local_port. Detta är t.ex. användbart om du har en VPS och vill kunna använda den som en jumpgate in till ditt nät hemma. Du sätter då i förväg upp remote forward exempelvis såhär:
ssh user@vps-host -R 2222:127.0.0.1:22
När du nu ansluter till port 2222 på vps-host kommer trafiken skickas till maskinen som satte upp remote forward och dess port 22.
Ibland vill man kunna lägga till en port forward i en existerande session eller på annat sätt göra saker med ssh. Därför finns det ett inbyggt command shell som man kan använda för att göra detta.
Kommandoskal
För att aktivera det i en ssh behöver du trycka följande sekvens: <ENTER>~C (enter, tilde, stora C). Har du gjort rätt så ska du nu få en prompt som ser ut såhär:
ssh>
Du kan nu lägga till portar som du vill genom att skriva t.ex.
L lokal_port:remote_host:remote_port
Det fungerar också med R och med D (för dynamiska portar). Se manualen under Escape sequences.