Я хотел бы установить переменную для вывода команды ssh в zsh. Сама команда ssh подключается к первому серверу, а затем снова подключается по ssh с этого сервера ко второму серверу, где я хочу выполнить свою команду.
Вот команда (отлично работает при вводе в оболочке):
ssh -t host1 "ssh -t host2 "uname -a""
У меня есть настройка ssh-ключа для host1, поэтому соединение не запрашивает пароль. У меня его нет для последующего соединения между host1 и host2, поэтому я должен ввести пароль.
Теперь я хотел бы сохранить содержимое uname
в переменной для использования в моем скрипте zsh. Я наивно пытался
a=$(ssh -t host1 "ssh -t host2 "uname -a"")
но, кажется, навсегда зависает, почему-то интерактивная подсказка для входа в систему пароля не перенаправлена ко мне. Если после этого я попробую повторить запрос echo $a
то user@host2's password:'
чтобы подтвердить его
Я думаю, что что-то пошло не так, как zsh обрабатывает кавычки и двойные кавычки, но я не мог понять, что именно. Я перепробовал много вариантов, но безуспешно.