Alguns comandos não encontrados no ssh

Alguns comandos não encontrados no ssh

Estou tendo problemas para executar alguns comandos sobre ssh no localhost, estou usando zsh no mac:

% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Library/TeX/texbin:/usr/local/munki:/opt/X11/bin:/opt/cisco/anyconnect/bin

% ssh localhost echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/Library/TeX/texbin:/usr/local/munki:/opt/X11/bin:/opt/cisco/anyconnect/bin

% which docker
/usr/local/bin/docker

% ssh localhost which docker
docker not found

Não sei o que pode estar errado aqui, tentei ssh -tmas com os mesmos resultados.

EDITAR:

Obrigado pelos comentários, na verdade é diferente, por que isso?

% ssh localhost printenv PATH
/usr/bin:/bin:/usr/sbin:/sbin

Responder1

A interpretação da variável é feita na linha de comando antes de executar qualquer código. Você pode enviar a variável para o servidor SSH escapando dela ou colocando aspas simples, por exemplo

% echo $HOST
tabasco
% ssh mesquite echo $HOST
tabasco
% ssh mesquite "echo $HOST"
tabasco
% ssh mesquite 'echo $HOST'
mesquite
% ssh mesquite echo \$HOST
mesquite
% ssh mesquite "echo \$HOST"
mesquite
% ssh mesquite 'echo \$HOST'
$​HOST
% printenv HOST
tabasco
% ssh mesquite printenv HOST
mesquite

(Observe que nem todos os hosts possuem uma $HOSTvariável por padrão. BSD, por exemplo.)

informação relacionada