SSH (Secure SHELL) je protokol, který nám pomáhá bezpečně přistupovat ke vzdáleným počítačům, v podstatě jako to dělá Telnet, ale používá šifrovací algoritmy, které nám pomáhají udržovat naše připojení zabezpečené, zvláště pokud chceme přistupovat k počítačům, které plní důležitou funkci v síti. organizace.
Obecně platí, že pro přístup musíme zadat naše uživatelské jméno a adresu počítače, aby nás server SSH požádal o přístupové heslo:
ssh usuario@equiporemoto
Od okamžiku, kdy klient zahájí první spojení mezi vzdáleným počítačem a námi, informace již bezpečně cestují a brání tomu, aby někdo získal naše přístupové údaje k uvedenému počítači, nicméně SSH je velmi přizpůsobivý protokol, který nám nabízí mnoho možností.
SCP
Prvním z nich je schopnost přenášet soubory mezi klientem a vzdáleným počítačem bez nutnosti připojení serveru FTP nebo NFS, jednoduše pomocí SCP (Secure CoPy), který implementuje většina serverů SSH:
scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt
SSH tunelování
Tato funkce je velmi užitečná, protože nám umožňuje odesílat a přijímat informace, které nemusí být nutně příkazy prostředí mezi klientem a vzdáleným počítačem, například běžné procházení. Pokud nevíte, jaké to může mít použití, přemýšlejte o následujícím: musíte přistupovat ke stránce, ale místo, kde se nacházíte, má implementovaný firewall, který přesně blokuje tuto stránku, proto můžeme provést tunelování pomocí dálkového ovladače počítač, který nemá uvedené bloky a procházení uvedené stránky prostřednictvím naší relace SSH:
ssh -D 8888 usuario@equiporemoto
Po připojení náš klient SSH „naslouchá“ na portu 8888 jako server proxy, abychom mohli nakonfigurovat náš prohlížeč a veškerý provoz se přenáší prostřednictvím relace SSH
Dalším příkladem, který mě napadá, je situace, kdy kvůli určitému geografickému omezení nemůžeme přistupovat k webové službě z místa, kde jsme, při vytváření tunelu uvedená webová služba detekuje jako zdroj IP adresu našeho vzdáleného serveru, nikoli IP klienta. To je do jisté míry ekvivalentní VPN (Virtual Private Network)
Reverzní SSH
Pokud z nějakého důvodu potřebujeme přistupovat k počítači, který je za bránou firewall a neumožňuje nám přesměrovat na něj provoz SSH, můžeme provést „reverzní SSH“ takovým způsobem, že se tento počítač připojí k jinému serveru SSH, na ke kterému se také můžeme připojit, abychom získali přístup k zařízení za firewallem. Příklad, který nás napadne, je, když chceme pomoci příteli, který nemá ponětí, jak nakonfigurovat přesměrování na svém modemu, ale potřebujeme k jeho počítači přistupovat vzdáleně:
Friend -> Modem -> SSH Server <- O nás
Kroky, které je třeba dodržet, jsou relativně velmi jednoduché:
amigo
ssh -R 9999:localhost:22 usuario@servidorssh
nás
ssh usuario@servidorssh
Jakmile jsme uvnitř serveru SSH, můžeme se spojit s týmem našeho přítele pomocí
ssh amigo@localhost -p 9999
Jak vidíte, všechna kouzla spočívají v parametru -R, který informuje zprostředkující server, že na portu 9999 počítač našeho přítele nyní poslouchá jako server.
Toto je jen několik možností, které nám SSH nabízí, ale já vás například vyzývám k experimentování; můžeme dělat bezobslužné skripty pomocí klíčů RSA, přesměrovat relace X (grafický režim) do našeho grafického prostředí, abychom zmínili jen několik.
Výborný článek, těším se, až se vrátím domů a začnu je procvičovat.
Díky moc! Je to vlastně můj první blogový příspěvek a je opravdu příjemné číst tyto komentáře. Na zdraví!
Právě včera jsem se ptal na něco o tomto tématu a je to následující.
Existuje způsob, jak být schopen scp celou složku, ale s přihlédnutím k datu souborů? Jinými slovy, mám složku s mnoha soubory, které jsem před nějakou dobou stáhl, mám zájem stáhnout pouze to, co bylo do této složky nahráno od určitého data.
Zdravím a děkuji předem.
Můžete to udělat s RSYNC přes SSH. 😉
rsync je víko nádoby !!! 😀
Doporučuji vám vyzkoušet unisono, je to SPECTACULAR, je k dispozici v repo operacích (minimálně debian a ubuntu)
http://www.cis.upenn.edu/~bcpierce/unison/
Používám jej k každodennímu zálohování poznámky na jiný počítač, kromě synchronizovaných adresářů na různých počítačích.
Jeho použití je velmi snadné
Doufám, že je to pro vás užitečné!
Exitos
Eduardo
To se zdá být spíše úkolem jako pro rsync, ale nevím, jestli existuje parametr, který by to konkrétně udělal, pokud ne, možná by to muselo být zpracováno ze skriptu
Co mě napadne, je vytvořit ls seřazené podle data a odtud zkopírovat ty, které potřebujete, pomocí jednoduchého scp, protože scp nemá tolik funkcí, jak se říká, má rsync.
Potvrzuji, že reverzní ssh je luxusní, použil jsem jej mezi svým počítačem a jiným, který byl vzdálen více než 700 km a nulové problémy.
Děkuji za tyto články, jsou velmi cenné.
Tak slané! Haha, nevěděl jsem, že ssh má tolik možností, už se chci naučit, jak nastavit ssh server a experimentovat s jeho schopnostmi, jen jedna věc, mohl byste vysvětlit, co každý parametr dělá?
Podle samotného ssh muže, -D slouží k lokální specifikaci 'dynamického předávání aplikací', což, jak jsem vysvětlil v článku, slouží k předávání provozu tunelem ve stejné relaci SSH. -R určuje vzdálený port, který bude přesměrován na náš lokální počítač přesměrování. A nakonec -p určuje, ke kterému portu se má klient připojit, když nepoužívá standardní port: 22
Dobrá věc, která se dotýká tohoto tématu, mám otázku ohledně klíčů ssh, můžete vygenerovat více než jeden klíč pro různé služby? Doufám, že zveřejnili příspěvek o správě klíčů ssh, vím, že v google existuje odpověď. Oni bude o tom mluvit,
Zdravím!
Když používáte ověřování pomocí klíčů SSL, můžete exportovat stejný (váš počítač) do různých služeb a stejným způsobem, pokud je váš počítač server, můžete začlenit různé klíče z různých počítačů. Nevím, jestli jsem odpověděl na vaši otázku, ale pochopil jsem to. Na zdraví
Myslím, že si pamatuji, že existovala cesta přes ssh, která nám umožnila vzdáleně spustit aplikaci a zobrazit ji v našem počítači, jako by to byla místní aplikace.
Mohli bychom například spustit firefox, vidíme a ovládáme jej na místním počítači, ale proces běží na vzdáleném počítači.
Obzvláště užitečné v počítačích s několika zdroji, ale bohužel nekontroluji problém a nevím, jak to nakonfigurovat.
Ví o tom někdo něco?
Pro něco takového by bylo vhodné použít VNC a můžete tunelovat pomocí SSH.
@Staff pro mě by nebylo vhodné používat VNC .. s VNC, pokud nejsem špatný, přinesete celou plochu ..
@ Luis, to, co děláte, se provádí jednoduše přidáním parametru "-X" do ssh (musíte povolit přesměrování X na vašem serveru)
http://i.imgur.com/NCpfzBL.jpg
@ x11tete11x
Vzhledem k tomu, co Luis zmínil, mě napadlo nabídnout mu jinou alternativu, protože:
1. „Obzvláště užitečné na počítačích s několika zdroji ...“
-V případě jediné aplikace nemusí spotřebovat tolik prostředků, ale pokus o otevření 10 oken pomocí předávání x nadále způsobí, že systém bude pracovat tvrději než mít jednu instanci VNC, protože VNC „nepřinese celou plochu“
-Při zavírání programu na klientovi to skončí stejně na serveru (někdo mě opraví, pokud se mýlím), zatímco u VNC můžete například nechat stahování torrentu celou noc a ráno se znovu přihlásit a všechno by pokračovalo přesně jak jsem odešel.
-VNC je systémový agnostický protokol, můžete k němu přistupovat z klienta ve Win, Andorid, Mac OSX atd. a používat své programy GNU / Linux, aniž byste museli instalovat cokoli jiného než samotného klienta VNC.
A 2. „... bohužel nekontroluji problém a nevím, jak nakonfigurovat počítače, aby to dělaly.“
Je mnohem snazší (a bez rizika napsat něco špatně a restartovat bez plochy) nainstalovat VNC a nakonfigurovat tunel SSH (provádí se pomocí grafického uživatelského rozhraní), než přesouvat konfigurační soubory X.
Děkuji vám oběma za vaše komentáře.
Už nějakou dobu používám SSH společně s SHFS pro přístup ke vzdálenému obsahu na mém malém serveru, ale nikdy jsem nebyl schopen spustit vzdálené aplikace v grafickém prostředí.
Zkusím obě možnosti, abych zjistil, jak to funguje. To, o čem jsem mluvil zpočátku, se zdá jednodušší, protože podle x11tete11x stačí přidat pouze jeden parametr.
Později uvidím, jestli najdu jednoduchý způsob, jak konfigurovat VNC, protože jsem trochu velký, jsem uživatel Arch, takže určitě budou na wiki informace, něco jiného je pro mě zjistit. Hehehe
Pozdrav.
To lze provést předáním parametru -X relaci, ale musíte mít svůj X server nakonfigurovaný tak, aby přijímal připojení z počítače v síti, myslím, že je nakonfigurován pomocí nástroje xhost. Jak zaměstnanci zmiňují, VNC je také velmi dobrá volba
Je to přesměrování X11, zde na stejném webu je příspěvek o tom:
https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/
Díky za informace, přátelé.
Řekl jsem, že to udělám pomocí obou možností, abych zjistil, který z nich mi vyhovuje lépe.
Zdravím!