Я пытаюсь сделать bash, который SSH в один сервер и SSH в другой раз в, и выполнять команды на моем втором сервере и выйти из обоих после.
пока что у меня получилось
ssh user@example.edu "ssh user@example2.edu; cd Dirk; source venv/bin/activate; python app.py; exit; exit;"
но кажется, что я не могу выполнять команды для второго сервера, на который я зашел с первого. Как мне это сделать?
Когда вы запускаете просто ssh user@host
без команды, указанной в качестве
как в вашем вложенном вызове, ssh запустит оболочку и будет ожидать
команды, которая будет набрана.
Ввод команд в ssh host1 ssh host 2
должен сработать. Чтобы использовать
тот же пример, что и в вашем вопросе:
echo "cd Dirk; source venv/bin/activate; python app.py" \
| ssh user@example.edu ssh user@example2.edu
ssh -t
, возможно, ваше решение
ssh user@example.edu -t "ssh user@example2.edu -t 'cd Dirk; source venv/bin/activate; python app.py; exit; exit;'"