Algunos comandos no se encuentran en ssh

Algunos comandos no se encuentran en ssh

Tengo problemas para ejecutar algunos comandos a través de ssh en localhost, estoy usando zsh en 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

No sé qué podría estar mal aquí, lo intenté ssh -tpero con los mismos resultados.

EDITAR:

Gracias por los comentarios, en realidad es diferente, ¿a qué se debe?

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

Respuesta1

La interpretación de variables se realiza en la línea de comando antes de ejecutar cualquier código. Puede enviar la variable al servidor SSH escapándola o entrecomillandola, por ejemplo

% 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

(Tenga en cuenta que no todos los hosts tienen una $HOSTvariable de forma predeterminada. BSD, por ejemplo).

información relacionada