Fórum Root.cz

Hlavní témata => Server => Téma založeno: martin 18. 09. 2015, 11:42:25

Název: SSH tunel a spuštění vzdáleného příkazu
Přispěvatel: martin 18. 09. 2015, 11:42:25
Potrebuju vytvorit SSH tunel a pri pripojeni spustit vzdaleny prikaz. Jakmile se ale prikaz provede, SSH spojeni se uzavre. Aktualne musim pouzivat dva prikazy:
Kód: [Vybrat]
ssh -L 1111:192.168.1.123:2222 user@example.net "uname -a"
ssh -L 1111:192.168.1.123:2222 user@example.net
Nejde to nejak zkombinovat do jednoho? Treba nejakym parametrem SSH klientovi.
Název: Re:SSH tunel a sputeni vzdaleneho prikazu
Přispěvatel: MP 18. 09. 2015, 14:41:34
Nestacilo by pouzit .bashrc ?
Název: Re:SSH tunel a sputeni vzdaleneho prikazu
Přispěvatel: Tonda 18. 09. 2015, 15:13:19
Já používám pro podobný účel tento skript - běží tam příkaz, který nikdy neskončí, echo slouží jako forma keepalive. pokud SSH spadne, je ve smyčce, která ho zase nahodí.
Kód: [Vybrat]
#! /bin/bash
while true; do
    ssh -L 1111:192.168.1.123:2222 user@example.net 'while true; do echo $(date +%T); sleep 10; done'
    sleep 5;
done
Název: Re:SSH tunel a spuštění vzdáleného příkazu
Přispěvatel: martin 18. 09. 2015, 20:06:58
Na Windows pouivam plink (z putty). Jde o jeden prikaz, ktery spusti vzdaleny prikaz a presmeruje port. Spojeni zustane otevrene.
Kód: [Vybrat]
plink.exe -ssh -2 -4 -N -C -L 1234:192.168.1.1:3389 user@example.net "uname -a"
Kód: [Vybrat]
  -1 -2     force use of particular protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -N        don't start a shell/command (SSH-2 only)
  -L [listen-IP:]listen-port:host:port - Forward local port to remote address
Neumi neco podobneho i linuxove ssh?
Název: Re:SSH tunel a spuštění vzdáleného příkazu
Přispěvatel: Jenda 18. 09. 2015, 21:01:53
Na Windows pouivam plink (z putty). Jde o jeden prikaz, ktery spusti vzdaleny prikaz a presmeruje port. Spojeni zustane otevrene.
Kód: [Vybrat]
plink.exe -ssh -2 -4 -N -C -L 1234:192.168.1.1:3389 user@example.net "uname -a"
Kód: [Vybrat]
  -1 -2     force use of particular protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -N        don't start a shell/command (SSH-2 only)
  -L [listen-IP:]listen-port:host:port - Forward local port to remote address
Neumi neco podobneho i linuxove ssh?

Opravdu ten příkaz spustí když mu dáš to -N?

Nešlo by prostě zařídit, aby příkaz neskončil? Třeba dát na konec read nebo cat.
Název: Re:SSH tunel a spuštění vzdáleného příkazu
Přispěvatel: nobody 18. 09. 2015, 22:18:41
Nešlo by prostě zařídit, aby příkaz neskončil? Třeba dát na konec read nebo cat.

nebo treba pouzit ssh klic a v .ssh/authorized_keys na remote vlozit na zacatek radku s klicem nejdelsi moznej sleep:
Kód: [Vybrat]
command="/bin/sleep 4294967295"
Název: Re:SSH tunel a spuštění vzdáleného příkazu
Přispěvatel: P@ja 18. 09. 2015, 23:43:45
Já používám k naprosté spokojenosti toto:
 
 
Kód: [Vybrat]
autossh -M 0 -q -f -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 1222:localhost:22 login@server.net
samozřejmě mám vymeněné klíče. Pokud spojení spadne, nebo nelze navázat automaticky to zkouší znovu.