Soms is het handig om te kunnen sluiten op uw computer thuis van het werk, of zelfs misschien van een internetcafe uit een afgelegen deel van de wereld. In de oude dagen, zou je hebt ingesteld uw modem te beantwoorden na de 10 ring, en sluit je bij 300bps op uw computer, tegenwoordig, met DSL en breedband high-speed verbindingen, je zeer waarschijnlijk een firewall het voorkomen van elke vorm van inkomende toegang. Natuurlijk kun je 'punch gaten in "de firewall uit te schakelen of, maar als u toegang tot een" server "nu al aangesloten op het internet hebben, hier is een alternatieve methode die is veiliger.
Stappen
- 1Op je GNU / Linux of Macintosh computer, voeg de volgende regel toe aan het einde van je / etc / inittab bestand:
Tunl: 345: respawn:/ usr / bin / ssh-n-N-T-R 6789: localhost: 22 me@my.remote.server
Vervang 'mij' met uw gebruikersnaam op de externe server, en 'my.remote.server' met de werkelijke hostnaam of IP-adres van de server. Als u Windows, zie Tips voor suggesties.
Je moet eerst hebben gevestigd deze verbinding "met de hand", het opzetten van shared-key authenticatie, opdat het tot onbemande werken, als je niet kunt typen diezelfde regel die begint met "/ usr / bin / ssh 'aan de wortel opdrachtprompt en heb het u verbinding met de externe server uitvoeren zonder verdere input, zal dit niet werken. - 2Herstart het init proces om de lijn die je net hebt toegevoegd activeren:
# Init q
- 3Van het werk, of vanaf elke externe internet locatie, probeert u naar uw computer via SSH. Het is een proces in twee stappen:
$ Ssh me@my.remote.server
Dan, wanneer aangesloten:
$ Ssh-p 6789 home @ localhost
Vervang 'thuis' in dit voorbeeld met uw gebruikersnaam op uw computer thuis.
Tips
- Inzicht in de inittab entry:
- init is de primaire usermode taak op een Unix-systeem, en inittab is het configuratiebestand dat het wat te doen vertelt.
- Tunl is gewoon een naam, een afkorting voor "tunnel", die aangeeft wat dit proces is. Het moet uniek zijn in het inittab bestand. Wanneer de tunnel niet werkt, kunt u proberen het verkorten van deze twee brieven, of, in het geval van OpenWRT, het wegwerken van het totaal.
- 345 runlevels waarbij deze taak actief moet zijn; netwerk moet geactiveerd in elk geval, zodat runlevel 3 (eventueel 2) moet voldoende zijn om de tunnel te stellen. Bij OpenWRT dient dit waarschijnlijk weggelaten
- respawn als de ssh tunnel pauzes voor welke reden dan ook (routing problemen, server down) je wilt dat het automatisch herstellen; "respawn" vertelt het te blijven proberen
- Als uw computer Windows in plaats van een Unix-smaak, installeer een goedkope router die OpenWRT, DD-WRT, of een andere soortgelijke vrije GNU / Linux-variant kan draaien, stekker in het systeem tussen de DSL-of kabelmodem en uw computer (s). Deze methode heeft het voordeel zelfs voor Linux of Mac-computers, omdat deze routers zijn zeer energie-efficiënt: je kunt ze achterlaten op terwijl je weg bent, waardoor de computer uit en start de computer on-demand gebruik van WOL (Wake-on -lan). De inittab vermelding voor OpenWRT zullen typisch
:: Respawn:/ usr / bin / ssh-n-N-T-R 6789: localhost: 22 me@my.remote.server
(Het elimineren van de eerste twee velden van het item)
Om dit te laten werken, moet je OpenSSH installeert, vervangt de dropbear openssh,> pakket standaard geïnstalleerd, en installeer wol.. Zodra u ssh wol> ed in de router, je dan wakker je computer met:
# Wol-v-p 9 00:11:22:33:44:55
gebruik, natuurlijk, het MAC-adres van uw eigen PC's (die je vooraf hebt bepaald en gecodeerd, met die opdracht, in een script is opgeslagen op de router). - Een alternatieve manier van het aansluiten in een stap naar de andere machine, zonder wijziging van de server setup:
- ssh-t me@my.remote.server 'ssh-t-p 6789 home @ localhost'
- Met Windows, zult u ook nodig hebt om een SSH-server installeren om verbinding te maken met deze methode., Een gratis GNU laag voor Windows, wordt geleverd met sshd.
- Als u wilt in staat zijn om verbinding te maken in een stap naar de interne machine, moet de inittab lijn enigszins anders:
- Tunl: 345: respawn:/ usr / bin / ssh-n-N-T-R 0:6789: localhost: 22 me@my.remote.server
- De "0:" vóór 6789 vertelt sshd te luisteren op alle interfaces op de afstandsbediening einde, niet alleen localhost
- Je moet ook een optie te veranderen (of toevoegen) in sshd setup van dat toestel (/ etc / ssh / sshd_config op Debian):
- GatewayPorts clientspecified # is "geen" standaard
- Dan "hup" de server dus het herleest de configuratie:
- kill-HUP $ (</ var / run / sshd.pid)
- Dan moet je aansluiten in een stap: ssh-p 6789 home@my.remote.server
- Inzicht in de mogelijkheden gegeven om de ssh tunnel proces:
- -N voorkomt het lezen van stdin, gebruikt voor de achtergrond processen
- -N vertelt ssh niet om een opdracht uit te voeren (in de eerste plaats voor port forwarding / tunneling)
- -T uitschakelen pseudo-TTY toewijzing; misschien niet noodzakelijk, maar kan geen kwaad
- -R port: host: hostPort port forwarding; 6789: localhost: 22 betekent dat, op de externe server, verbinden met localhost: 6789 eigenlijk brengt u naar poort 22 (sshd) op de computer thuis.