Я пытаюсь к SSH разместить № 1, у кого есть доступ для хостинга № 2, и на хосте № 2, я хочу выполнить команду. Все от моей локальной машины.
Этот бит хорошо работает:
ssh host1 -t "command; ssh user@host2"
Но на host2 я также хочу к CD к каталогу и затем остаюсь на связи
Я пытался использовать это:
ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/'"
Вывод, который я получаю:
Connection to host2 closed.
Connection to host1 closed.
И заканчивается на моей локальной машине
Ожидаемым результатом была моя сессия, находящаяся на host2 в/some/path/каталоге через host1
Вместо tmux
или screen
, как предложено @heemayl, можно также использовать bash
:
ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/; bash'"
Установка screen
или tmux
в "host2", тогда выполняющем следующее, поддержит сессию:
ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/; screen'"
В случае Вас команда т.е. ssh host1 -t "command; ssh user@host2 -t 'command; cd /some/path/'"
, сеанс будет закрыт после выполнения команд. Но если Вы будете использовать screen
или tmux
, то удаленный сеанс будет поддержан.
Проверка страницы справочника экран и tmux для деталей. tmux
более новый подход для решения той же проблемы screen
, решает.