Tanto quanto sei, não é necessário citar o comando real.
ssh username@ComputerB ssh username@ComputerC make clean all
Ou
ssh -J username@ComputerB username@ComputerC make clean all
Isso usaria ComputerB
como um host de salto para conexão com ComputerC
.
Com o OpenSSH 7.3+, a opção de configuração ProxyJump
permite que você configure um host de salto em ~/.ssh/config
:
Host ComputerC
User username
ProxyJump username@ComputerB
... então o comando seria reduzido para
ssh ComputerC make clean all
Dependendo do que seus problemas realmente consistem (nenhuma mensagem de erro foi mencionada na pergunta), pode ter algo a ver com a execução de make
no diretório errado. Para cd
no diretório correto antes de executar make
use a opção -C
do utilitário:
ssh username@ComputerC make -C path/to/build/dir clean all
Além disso, se você quiser armazenar o comando real em uma variável, não use uma única string em bash
, mas uma matriz:
cmd=( make -C "path/to/build/dir" clean all )
ssh ... "${cmd[@]}"