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-%r@%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 login@zdalnyhost .
oraz ?ssh -S ~/.ssh/zdalny-host login@zdalnyhost?
dla kolejnych połączeń do tego samego adresu.
Źródło: Linux.com