[email protected]$ autossh -R 12345:localhost:22 [email protected]
Později:
[email protected]$ autossh -L 23456:localhost:12345 [email protected]
[email protected]$ ssh [email protected] -p 23456
Můžete udělat toto:v kroku 1 předat vzdálený port z kancelářského počítače na server (12345
je použit jako příklad, měl by stačit jakýkoli port>1024). Nyní, když se připojíte k 12345 na serveru, měli byste se připojit k portu 22 na officepc.
V kroku 2 přepošlete port 23456 z vašeho domácího počítače na 12345 na serveru (odtud bude předán na officepc:22, jak je nastaveno v kroku 1)
V kroku 3 se připojíte k místnímu portu 23456 pomocí přihlášení k vašemu kancelářskému PC . To je předáno v kroku 2 na port 12345 na vašem serveru a v kroku 1 na váš kancelářský počítač.
Všimněte si, že pro předávání používám autossh, protože je to obal ssh, který automaticky znovu připojí tunel, pokud by byl odpojen; nicméně normální ssh by fungovalo také, pokud by se spojení nepřerušilo.
Existuje možná chyba zabezpečení:kdokoli, kdo se může připojit k localhost:12345 na serverpc, se nyní může připojit k officepc:22 a pokusit se do něj proniknout. (Všimněte si, že pokud provozujete SSH server, měli byste jej každopádně zabezpečit nad základní ochrany, které jsou ve výchozím nastavení zapnuté; doporučuji alespoň zakázat přihlášení uživatele root a zakázat ověřování heslem – viz např. toto)
Upravit :Ověřil jsem to se stejnou konfigurací a funguje to. GatewayPorts no
ovlivňuje pouze porty, které jsou otevřeny celému světu, nikoli místní tunely. Toto jsou přesměrované porty:
homepc:
outgoing ssh to serverpc:22
listening localhost:23456 forwarded through ssh tunnel
serverpc:
listening ssh at *:22
incoming localhost ssh tunnel (from homepc) forwarded to localhost:12345
listening localhost ssh tunnel (from officepc) forwarded from localhost:12345
officepc:
outgoing ssh to serverpc:22
incoming localhost through ssh tunnel (from serverpc) forwarded to localhost:22
Takže pokud jde o síťový zásobník, je to veškerý místní provoz na příslušných rozhraních zpětné smyčky (plus připojení ssh k serverpc); tedy GatewayPorts
není vůbec zaškrtnuto.
Existuje však direktiva AllowTcpForwarding
:pokud je to no
, toto nastavení selže, protože není povoleno žádné předávání, a to ani přes rozhraní zpětné smyčky.
Upozornění :
-
pokud používáte autossh a poslední ssh, možná budete chtít použít ssh
ServerAliveInterval
aServerAliveCountMax
pro udržení tunelu nahoře. Autossh má vestavěnou kontrolu, ale zjevně má nějaké problémy na Fedoře.-M0
to zakáže a-oServerAliveInterval=20 -oServerAliveCountMax=3
zkontroluje, zda je připojení aktivní - zkouší každých 20 sekund, pokud selže 3x za sebou, zastaví ssh (a autossh vytvoří nové):autossh -M0 -R 12345:localhost:22 -oServerAliveInterval=20 -oServerAliveCountMax=3 [email protected] autossh -M0 -L 23456:localhost:12345 -oServerAliveInterval=20 -oServerAliveCountMax=3 [email protected]
-
může být užitečné restartovat ssh tunel, pokud se předávání nezdaří, pomocí
-oExitOnForwardFailure=yes
- pokud je port již vázán, můžete získat funkční připojení SSH, ale žádný předaný tunel. -
pomocí
~/.ssh/config
pro možnosti (a porty) je vhodné, jinak jsou příkazové řádky příliš podrobné. Například:Host fwdserverpc Hostname serverpc User notroot ServerAliveInterval 20 ServerAliveCountMax 3 ExitOnForwardFailure yes LocalForward 23456 localhost:12345
Pak můžete použít pouze alias serveru:
autossh -M0 fwdserverpc
Pokud můžete ssh na interní server z domova a z interního serveru na váš kancelářský počítač Linux, pak z domova můžete použít ssh ProxyCommand
aby se tiše odrazil přes server na interní počítač přes nc
(netcat)
# ~/.ssh/config on your home machine:
Host internalpc
ForwardAgent yes
ProxyCommand ssh [email protected] exec nc internal.pc.example.com %p
Pak stačí ssh [email protected]
a vy jste tiše přesměrováni přes serverový stroj, na žádném konci není potřeba otevírání portů ani tunelů.
Nainstalujte Robo-TiTO do počítače, ze kterého chcete vzdáleně přistupovat k SSH.
- To vám umožní přistupovat k SSH pomocí klientských aplikací Google Talk odkudkoli.
- Není potřeba mít veřejnou IP adresu ani speciální nastavení.
- Je to zdarma a s otevřeným zdrojovým kódem, již neplatíte žádné aplikační služby.
- Není třeba otevírat port SSH (udržujte počítač v bezpečí).
- Není třeba otevírat žádné tunelování (např. VPN nebo něco podobného)
Následující pokyny k instalaci jsou zastaralé, protože web se přestěhoval. Nová adresa URL je https://github.com/formigarafa/robotito
Udělal jsem skript (vyzkoušeno na mém Raspbian OS v Raspberry Pi), takže můžete snadno nainstalovat Robo-TiTO na Raspberry Pi, Debian nebo Ubuntu Box (distribuce balíčků Debian). Toto jsou kroky k získání vašeho Linuxu vzdálená skříň:
Otevřete příkaz Shell nebo jej můžete nazvat Terminál, přejděte do domovské složky a stáhněte instalační skript příkazem:
$ wget https://opengateway.googlecode.com/files/robotito
poté spusťte skript zadáním příkazu:
$ sudo ./robotito
a poté můžete upravit soubor
credentials.rb
z konfigurační složky Robo-TiTO pomocí svého účtu GTalk a uložte jej stisknutím Ctrl +X a Y . Výchozí je použití nano editoru.spuštění Robo-TiTO ze složky Robo-TiTO příkazem
$ cd robotito $ ./jabbershd start
Nyní, když je to hotovo, můžete používat SSH z jakéhokoli klienta Google Talk. Nezapomeňte si přidat účet Robo-TiTO GTalk ke svému účtu Google Talk a před použitím účtu jej otestovat vzájemným chatováním.