Использовать bash-скрипт для отправки команд SSH-клиенту?

Использовать bash-скрипт для отправки команд SSH-клиенту?

Всем доброго дня,

Недавно я узнал о возможности отправлять команды обратно на свою локальную рабочую станцию ​​с удаленного SSH-подключения с помощью <enter>~Cescape-последовательности, например:

[root@host ~]# 
[root@host ~]# 
ssh> !ip ad

Теперь я бы с удовольствием мог сделать это с помощью скрипта bash для автоматического запуска команд на моей локальной рабочей станции или для других вещей, но я не смог найти никакого способа отправки команд обратно в эту оболочку программным путем, и не нашел никого, кто спрашивал/пытался. Чтобы было ясно, я не пытаюсь отправлять команды НА удаленный сервер через SSH - я пытаюсь отправлять команды ОБРАТНО на мою рабочую станцию ​​ИЗ SSH-подключения через клиент (как показано выше).

Если у кого-то есть предложения или кто-то знает, как это сделать, я был бы очень признателен за вашу помощь. Спасибо!

решение1

Я думаю, что это невозможно, потому что символ escape никогда не поступает в Bash на удаленной системе. Он перехватывается вашим локальным SSH-клиентом до того, как удаленный bash сможет его установить.

Я понимаю, что это не то, о чем вы просили, и это может быть невыполнимо в зависимости от вашей ситуации, но альтернативное решение может достичь вашей цели:

Запустите команду на локальной машине, подключившись к ней по SSH с удаленной машины:

[root@remote-host ~]# ssh your-local-machine ip ad

решение2

Поскольку это проблема безопасности, вы не сможете запускать локальные команды с удаленного хоста в рамках SSH-подключения.

Вы можете отключить соединение, чтобы передавать команды через терминал, т. е. с локального сервера.

Итак, если вы хотите запустить и соединение, и скрипт через SSH-соединение, вы можете попробовать взглянуть на expect, но это будет сделано путем встраивания или обертывания вашего SSH-соединения в другое приложение, а не напрямую из удаленной оболочки.

Связанный контент