SSH tunel a spuštění vzdáleného příkazu

martin

SSH tunel a spuštění vzdáleného příkazu
« kdy: 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.
« Poslední změna: 18. 09. 2015, 16:47:05 od Petr Krčmář »


MP

Re:SSH tunel a sputeni vzdaleneho prikazu
« Odpověď #1 kdy: 18. 09. 2015, 14:41:34 »
Nestacilo by pouzit .bashrc ?

Tonda

  • *****
  • 693
    • Zobrazit profil
    • E-mail
Re:SSH tunel a sputeni vzdaleneho prikazu
« Odpověď #2 kdy: 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

martin

Re:SSH tunel a spuštění vzdáleného příkazu
« Odpověď #3 kdy: 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?

Jenda

Re:SSH tunel a spuštění vzdáleného příkazu
« Odpověď #4 kdy: 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.


nobody

Re:SSH tunel a spuštění vzdáleného příkazu
« Odpověď #5 kdy: 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"

P@ja

Re:SSH tunel a spuštění vzdáleného příkazu
« Odpověď #6 kdy: 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.