header nav .menu-item-has-children
.ul
внутри полученного. Они у вас и показываются сразу же. Старайтесь не привязываться к тегам, это очень плохая практика. Раскройте код меню целиком, увидите что там все циклично повторяется и все элементы попадают под обработку вне зависимости от уровня вложенности. JS то глюпый и не может понять, второй уровень у элемента или третий, пока вы сами ему это не докажете.
Но ключ - это уровень настройки серверов и там все достаточно просто: один ключ приватный лежит у юзера на сервере A и публичный ключ лежит на управляемом сервере B. Все как при обычном коннекте на любой сервер по SSH. Если команда не требует прав рута, так вообще отлично. Просто заходить под нужным пользователем по ключу.
Можно взять библиотеку Symfony Console и дописать свои команды. Я сейчас как раз пишу приложение на PHP для настройки сервера: https://github.com/oxboot/ox/tree/develop