Como posso corrigir o PATH da variável de ambiente vazia na máquina remota ao usar ssh/scp?

Como posso corrigir o PATH da variável de ambiente vazia na máquina remota ao usar ssh/scp?

Ao usar o scp em uma máquina remota, recebi misteriosamente o erro "sh: scp: Esse arquivo ou diretório não existe":

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

Ao tentar consultar as variáveis ​​de ambiente na máquina remota, também falhou com "sh: env: Nenhum arquivo ou diretor":

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

Mas ao usar o caminho completo para env pude ver que PATH está vazio:

$ 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

No entanto, se eu fizer logon na máquina via ssh, o PATH não estará vazio:

$ 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

Também tentei usar root e obtive o mesmo "sh: env: Nenhum arquivo ou diretório":

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

Como posso corrigir o PATH da variável de ambiente vazia?

localhost é macOS e remoto é BuildRoot (https://buildroot.org) em uma framboesa

Responder1

Isso está relacionado à configuração do shell de login e do shell sem login. Normalmente, o shell de login lerá .profilee o shell sem login lerá .bashrc. Para consertar isso, você precisa definir PATHnesses arquivos de configuração.

Aqui estão algumas referências e explicações:

informação relacionada