Как исправить пустую переменную окружения PATH на удаленной машине при использовании ssh/scp?

Как исправить пустую переменную окружения PATH на удаленной машине при использовании ssh/scp?

При использовании scp на удаленной машине я по непонятной причине получил ошибку «sh: scp: Такого файла или каталога нет»:

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

При попытке просмотреть переменные среды на удаленной машине также возникла ошибка «sh: env: No such file or directory»:

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

Но при использовании полного пути к env я увидел, что PATH пуст:

$ 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

Однако если я войду на машину через ssh, PATH не будет пустым:

$ 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

Я также попробовал использовать root и получил то же самое «sh: env: Такого файла или каталога нет»:

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

Как исправить пустую переменную окружения PATH?

localhost — это macOS, а remote — это BuildRoot (https://buildroot.org) на малине

решение1

Это связано с настройкой оболочки входа и оболочки без входа. Обычно оболочка входа будет читать из .profile, а оболочка без входа будет читать из .bashrc. Чтобы исправить это, вам нужно определить PATHв этих файлах конфигурации.

Вот некоторые ссылки и пояснения:

Связанный контент