Как правильно использовать ssh ControlMaster

У меня есть скрипт, который выполняет несколько команд удаленно через ssh. Я выполняю каждую команду отдельно, потому что я хочу делать другие вещи между казнями.

Тем не менее, я не хочу воссоздавать сеанс ssh каждый раз, когда я выдаю новую команду. Я читал о -oControlMaster но я не могу заставить его работать.

Когда я запускаю:

 ssh -oControlMaster=yes -oControlPath=/tmp/test.sock root@host 

после ввода пароля я просто получаю сеанс ssh. Если я выйду, файл /tmp/test.sock не будет найден.

Что мне не хватает?

  • SSH. Возможно ли, чтобы сеанс SSH полностью контролировал клиента?
  • Can 'ssh <host> <command>' настраивается всегда на загрузку файлов на стороне сервера?
  • Правильный способ установки rsnapshot над ssh
  • Продолжайте выполнение программы, требующей X-сервера после выхода из сеанса ssh
  • Очень медленное соединение SSH, не связанное с опцией GSSAPIAuthentication
  • Автоматизация резервных копий выполняется из сценария bash в Linux правильным способом
  • Открытие файлов с сервера Ubuntu поверх ssh с терминала Mac
  • Где найти историю передачи файлов от клиента SSH (Debian / Linux)?
  • 2 Solutions collect form web for “Как правильно использовать ssh ControlMaster”

    Вы можете использовать опцию ControlPersist чтобы покинуть сокет после отключения от сервера.

    например, в моем конфигурационном файле ssh у меня есть этот фрагмент, который отключает подключение 3 сек.

     Хост *
        ControlMaster auto
        ControlPath ~/.ssh/master-socket/%r@%h:% p
        #ControlPath ~/.ssh/%r@%h:% p
        ControlPersist 3s
    

    Для подключения к главному соединению необходимо открыть одно главное соединение.

    Файл сокета доступен только в том случае, когда основное соединение открыто. Если вы закроете главное соединение, файл сокета будет удален. Любое открытое «подчиненное соединение» также будет закрыто, если главное соединение будет закрыто.

    Linux и Unix - лучшая ОС в мире.