Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

Способ выхода из соединения для передачи команд - через терминал, т.е. с локального сервера.

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