Fórum Root.cz
Hlavní témata => Server => Téma založeno: 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:
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.
-
Nestacilo by pouzit .bashrc ?
-
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í.
#! /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
-
Na Windows pouivam plink (z putty). Jde o jeden prikaz, ktery spusti vzdaleny prikaz a presmeruje port. Spojeni zustane otevrene.
plink.exe -ssh -2 -4 -N -C -L 1234:192.168.1.1:3389 user@example.net "uname -a"
-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?
-
Na Windows pouivam plink (z putty). Jde o jeden prikaz, ktery spusti vzdaleny prikaz a presmeruje port. Spojeni zustane otevrene.
plink.exe -ssh -2 -4 -N -C -L 1234:192.168.1.1:3389 user@example.net "uname -a"
-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.
-
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:
command="/bin/sleep 4294967295"
-
Já používám k naprosté spokojenosti toto:
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.