Usar script bash para enviar comandos ao cliente SSH?

Usar script bash para enviar comandos ao cliente SSH?

Boa tarde a todos,

Recentemente, tomei conhecimento da minha capacidade de enviar comandos de volta para minha estação de trabalho local a partir de uma conexão SSH remota usando a <enter>~Csequência de escape, como:

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

Agora, eu adoraria poder fazer isso usando um script bash para executar comandos automaticamente em minha estação de trabalho local ou fazer outras coisas, mas não consegui encontrar nenhuma maneira de enviar comandos de volta para este shell programaticamente, nem encontrei ninguém outra pessoa que perguntou/tentou. Para ser claro, não estou tentando enviar comandos para um servidor remoto via SSH - estou tentando enviar comandos de volta para minha estação de trabalho a partir de uma conexão SSH através do cliente (conforme mostrado acima).

Se alguém tiver alguma sugestão ou souber como fazer isso, ficaria muito grato pela sua ajuda. Obrigado!

Responder1

Acho que isso não é possível porque o caractere de escape nunca chega ao Bash no sistema remoto. Ele é interceptado pelo seu cliente SSH local antes que o bash remoto possa configurá-lo.

Sei que não é o que você estava pedindo e pode não ser viável dependendo da sua situação, mas uma solução alternativa pode atingir seu objetivo:

Execute o comando em sua máquina local fazendo SSH de volta a partir da máquina remota:

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

Responder2

Como é uma preocupação de segurança, você não poderá executar comandos locais de um host distante em uma conexão SSH.

A maneira como você escapa da sua conexão para passar comandos é através do terminal, ou seja. do servidor local.

Portanto, se você deseja executar uma conexão e um script por meio de uma conexão SSH, você pode tentar esperar, mas será incorporando ou agrupando sua conexão SSH em outro aplicativo, não diretamente do shell remoto.

informação relacionada