Řízení připojení pomocí SSH escape kódů

1. června 2015

I poté, co jste zřídili nějakou SSH relaci, je možné mít jistou kontrolu nad připojením zevnitř terminálu. Dělá se to tím, čemu se říká SSH escape kódy, které umožňují být v interakci s lokálním SSH softwarem zevnitř relace.

Jak vynutíte odpojení od klientské strany?

Jak odejít z relace, která se zasekla nebo zamrzla?

Jednou z nejužitečnějších funkcí OpenSSH, která stále zůstává do značné míry bez povšimnutí, je způsobilost řídit jisté aspekty relace zevnitř.

Tyto příkazy lze spouštět tak, že uvnitř SSH relace uvedete na jejich začátku řídící znak ~. Řídící příkazy se budou interpretovat jen tehdy, pokud je to první věc, kterou jste napsali po přechodu na nový řádek, takže vždycky stiskněte jednou či dvakrát ENTER, než takový příkaz použijete.

Jednou z nejužitečnějších řídících činností je schopnost iniciovat odpojení od klienta. SSH připojení typicky uzavírá server, může však nastat problém, pokud server trpí nějakými neduhy, nebo bylo připojení nějak porušeno. Když použijete odpojení na straně klienta, je možné připojení čistě uzavřít z klienta.

Připojení uzavřete z klienta tak, že použijete řídící znak (~) s tečkou. Pokud má připojení nějaké potíže, pravděpodobně se jedná o situaci, kdy se zasekla terminálová relace. Napište následující příkazy, abyste provedli odpojení klientské strany, i když postrádají zpětnou vazbu:

[ENTER] ~.

Připojení by se mělo okamžitě uzavřít a budete vráceni do relace lokálního shellu.

Umístění SSH relace do pozadí

Jednou z nejužitečnějších funkcí OpenSSH, která stále zůstává do značné míry bez povšimnutí, je způsobilost řídit jisté aspekty relace zevnitř.

Tyto příkazy lze spouštět tak, že uvnitř SSH relace uvedete na jejich začátku řídící znak ~. Řídící příkazy se budou interpretovat jen tehdy, pokud je to první věc, kterou jste napsali po přechodu na nový řádek, takže vždycky stiskněte jednou či dvakrát ENTER, než takový příkaz použijete.

Jednou z poskytovaných schopností je dát SSH relaci do pozadí. Abyste toho docílili, je třeba dodat řídící znak (~) a pak vydat tradiční klávesovou zkratku pro umístění úlohy do pozadí (CTRL-z):

[ENTER] ~[CTRL-z]

Tím umístíte připojení do pozadí a vrátíte se do relace lokálního shellu. Chcete-li se vrátit do SSH relace, použijte tradiční řídící mechanizmy prací.

Úlohu, kterou jste naposled poslali do pozadí, znovu aktivujete pomocí:

fg

Pokud máte v pozadí více úloh, všechny dostupné práce uvidíte, když napíšete:

jobs
[1]+ Stopped                 ssh username@nejaky_host
[2]   Stopped                 ssh username@jiny_host

Kteroukoli z těchto úloh pak dostanete do popředí tím, že uvedete znak procento a index práce z prvního sloupce:

fg %2

Změna voleb portu, který přeposílá, na existujícím SSH připojení

Jednou z nejužitečnějších funkcí OpenSSH, která stále zůstává do značné míry bez povšimnutí, je způsobilost řídit jisté aspekty relace zevnitř.

Tyto příkazy lze spouštět tak, že uvnitř SSH relace uvedete na jejich začátku řídící znak ~. Řídící příkazy se budou interpretovat jen tehdy, pokud je to první věc, kterou jste napsali po přechodu na nový řádek, takže vždycky stiskněte jednou či dvakrát ENTER, než takový příkaz použijete.

Jednou z věcí, která se povoluje uživateli, je změna konfigurace portu, který přeposílá, i když už bylo připojení zřízeno. Umožňuje to za pochodu vytvořit nebo zbořit pravidla přeposílání.

Tyto způsobilosti jsou součástí rozhraní příkazového řádku SSH, k němuž máte během relace přístup poté, co napíšete řídící znak (~) a „C“:

[ENTER] ~C
ssh>

Dostanete se do výzvy příkazového řádku SSH, který má jen velmi omezenou sadu platných příkazů. Chcete-li se podívat na dostupné možnosti, napište v této výzvě -h. Pokud se nic nevrátí, možná budete muset zvýšit mnohomluvnost SSH výstupu tím, že několikrát napíšete ~v:

[ENTER] ~v
~v
~v
~C
-h
Commands:
-L[bind_address:]port:host:hostport   Request local forward
-R[bind_address:]port:host:hostport   Request remote forward
-D[bind_address:]port                 Request dynamic forward
-KL[bind_address:]port                 Cancel local forward
-KR[bind_address:]port                 Cancel remote forward
-KD[bind_address:]port                 Cancel dynamic forward

Jak vidíte, můžete snadno implementovat kteroukoli z těchto přeposílacích voleb pomocí zde odpovídajících voleb (další informace viz sekce o přeposílání). Můžete také zničit tunel sdruženým příkazem „kill“, který se specifikuje písmenem „K“ uvedeným před písmenem určujícím typ přeposílání. Například, chcete-li zničit lokální přeposílání (-L), použijte příkaz -KL. Pak už stačí uvést jen patřičný port.

Takže, chcete-li připravit nějaké lokální přeposílání, stačí napsat:

[ENTER] ~C
-L 8888:127.0.0.1:80

Port 8888 na lokálním počítači bude nyní schopen komunikovat s webovým serverem na houstu, ke kterému se připojujete. Až skončíte, můžete přeposílání zbořit tím, že napíšete:

[ENTER] ~C
-KL 8888

Závěr seriálu o SSH

Instrukce uvedené v tomto seriálu by měly pokrýt většinu informací, které uživatelé potřebují o SSH vědět pro svou běžnou každodenní práci. Máte-li nějaké další tipy nebo si přejete sdílet své oblíbené konfigurace a metody, vyjádřete se v komentářích níže.

logo-zonercloudČlánek byl přeložen díky ZonerCloud.cz – Výkonné servery bez závazků.

Zabezpečte váš server SSL certifikátem. Máme pro vás 7 mýtů o SSL certifikátech na vašem serveru.

Napsal: Justin Elingwood
Přeložil RNDr. Jan Pokorný
Znění původního článku najdete zde

Creative Commons License

Štítky: SSH seriál

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *