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[@]}"