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

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

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

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

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

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

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

  • Неверное количество зарегистрированных пользователей с использованием «w»
  • Что такое пересылка порта ssh и какая разница между локальной и удаленной пересылкой портов
  • Переадресация X11 через SSH и su
  • Как переключить пользователя с предварительно настроенными учетными данными в SSH-терминал после входа в систему как стандартный пользователь
  • SSH AuthorizedKeysCommand и SELinux
  • Почему я не могу войти в систему на удаленном компьютере без пароля после использования команды SSH-KEYGEN?
  • sudo: не спрашивайте пароль при входе в систему с помощью ssh key
  • Как перевернуть ключи хоста ssh?
  • 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 - лучшая ОС в мире.