Автор Гілка: SSH connection sharing  (Прочитано 1512 раз)

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
SSH connection sharing
« : 2010-07-30 23:10:05 »
Давно чув про сабж, ось видалась нагода спробувати.  Ідея: припустимо, нам
потрібно декілька SSH-з'єднань з тим самим сервером; замість того щоб створювати
для кожного з'єднання окремий SSH-сеанс, створюється один головний процес і всі
з'єднання йдуть через нього.  

Переваги: лише один handshake -- зменшення трафіку та прискорене встановлення
з'єднань.  На сервері створюється лише один процес sshd -- заощаджує ресурси.

Навіть за невеликої кількості з’єднань вже можна побачити прискорення.  Мій
скрипт виконує 8 віддалених команд.  Варіант зі спільним з'єднанням працює в 1,5
рази швидше.

micro-HOWTO:
# Створення головного процесу
ssh -N -M -S /tmp/%r@%h:%p user@example.com
(без -N працює як командна оболонка)

# Віддалена командна оболонка
ssh -o ControlPath=/tmp/%r@%h:%p user@example.com

# Віддалене виконання команди echo
ssh -n -o ControlPath=/tmp/%r@%h:%p user@example.com echo

# -O керує головним процесом
ssh -O exit -o ControlPath=/tmp/%r@%h:%p user@example.com
ssh -O check -o ControlPath=/tmp/%r@%h:%p user@example.com

Тут http://protempore.net/~calvins/howto/ssh-connection-sharing/ можна почитати,
як це все настроїти у файлі конфігурації.
Best regards,
nickat