Akceleracja połączeń OpenSSH z wykorzystaniem ControlMaster

OpenSSH 4.0 przedstawił nową interesującą funkcjonalność nazwaną ControlMaster, pozwalającą na ponowne użycie nawiązanego już połączenia ze zdalnym adresem w momencie nawiązywania następnego. Zaletą jest znaczna redukcja ilości czasu potrzebnego na zestawienie komunikacji po inicjacji żądania połączenia.

Zredukowanie czasu połączeń jakie oferuje ControlMaster szczególnie przydatne jest dla osób często korzystających z narzędzi pozwalających na pracę z wielokrotnymi połączeniami SSH na zdalnym serwerze.

* Użycie programu Emacs z transparentnym dostępem do zdalnego zasobu
* Wielowątkowy protokół TRAMP umożliwiający dostęp do zasobu na zdalnym serwerze przez SSH
* Użycie systemu plików SSHFS w środowisku użytkownika FUSE
* Dostęp do zdalnych zasobów CVS lub repozytorii tunelem SSH
* Zdalne uzupełnianie nazwy pliku w środowisku shell - bash lub zsh

Test czasu komunikacji opartej na SSH przed użyciem ControlMaster wykazał średni czas połączeń równy 1.9 sekundy. Następnie po edycji ~/.ssh/config oraz dodaniu następujących linii:

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%[email protected]%h:%p

Test czasu komunikacji wykazał wykonanie tych samych inicjacji połączeń w czasie po połowe szybszym, tj. 0.9 sekundy. Zmienna ControlPath, precyzująca zdalną nazwę w formie (%r) adres (%h) i ścieżka (%p) działa tylko z wersjami OpenSSH 4.2 oraz nowszymi. W przypadku posiadania starszych wersji wymagane będą dodatkowe zabiegi celem zestawienia połączenia z wykorzystaniem ControlMaster.

Przykładem wykorzystania takiego połączenia może być następująca komenda:

ssh -M -S ~/.ssh/zdalny-host [email protected] .
oraz ?ssh -S ~/.ssh/zdalny-host [email protected]?

dla kolejnych połączeń do tego samego adresu.

Źródło: Linux.com

Realizacja: SIPLEX Studio