¿Cómo puedo arreglar la RUTA de variable de entorno vacía en una máquina remota cuando uso ssh/scp?

¿Cómo puedo arreglar la RUTA de variable de entorno vacía en una máquina remota cuando uso ssh/scp?

Cuando usé scp en una máquina remota, misteriosamente recibí el error "sh: scp: No existe tal archivo o directorio":

$ scp [email protected]:test.txt .
Welcome to remotehost!
[email protected]'s password: 
sh: scp: No such file or directory

Al intentar buscar las variables de entorno en la máquina remota, también falló con "sh: env: No existe tal archivo o director":

$ ssh [email protected] env
Welcome to remotehost!
[email protected]'s password: 
sh: env: No such file or director

Pero cuando uso la ruta completa a env, pude ver que la RUTA está vacía:

$ ssh [email protected] "/usr/bin/env"
Welcome to remotehost!
[email protected]'s password: 
SSH_CONNECTION=192.168.1.7 62675 192.168.1.11 22
USER=admin
PWD=/root
HOME=/root
SSH_CLIENT=192.168.1.7 62675 22
MAIL=/var/mail/admin
SHELL=/bin/sh
SHLVL=1
LOGNAME=admin
PATH=
_=/usr/bin/env

Sin embargo, si inicio sesión en la máquina a través de ssh, la RUTA no está vacía:

$ ssh [email protected]
Welcome to remotehost!
[email protected]'s password: 
[root@ remotehost ~]# env
HOSTNAME= remotehost
EDITOR=/usr/bin/nano
USER=root
PAGER=/usr/bin/less
INPUTRC=/etc/inputrc
PWD=/root
HOME=/root
SSH_CLIENT=192.168.1.7 62724 22
SSH_TTY=/dev/pts/0
MAIL=/var/mail/admin
TERM=linux
SHELL=/bin/sh
SHLVL=1
LOGNAME=root
PATH=/bin:/sbin:/usr/bin:/usr/sbin
PS1=[\u@\h \W]\$ 
HISTSIZE=1000
HISTFILESIZE=1000
_=/usr/bin/env

También intenté usar root y obtuve el mismo "sh: env: No existe tal archivo o directorio":

$ ssh [email protected] env
Welcome to remotehost!
[email protected]'s password: 
sh: env: No such file or directory

¿Cómo puedo arreglar la RUTA de variable de entorno vacía?

localhost es macOS y remoto es BuildRoot (https://buildroot.org) en una frambuesa

Respuesta1

Esto está relacionado con la configuración del shell de inicio de sesión y del shell sin inicio de sesión. Normalmente, el shell de inicio de sesión leerá desde .profiley el shell sin inicio de sesión leerá desde .bashrc. Para solucionarlo, debe definir PATHen estos archivos de configuración.

Aquí hay algunas referencias y explicaciones:

información relacionada