ssh/scp を使用するときに、リモート マシン上の空の環境変数 PATH を修正するにはどうすればよいですか?

ssh/scp を使用するときに、リモート マシン上の空の環境変数 PATH を修正するにはどうすればよいですか?

リモート マシンに対して scp を使用すると、不可解なエラー「sh: scp: No such file or directory」が発生しました。

$ 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 director」というエラーで失敗しました。

$ 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: No such file or directory」が表示されます。

$ 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

以下に参考資料と説明を示します。

関連情報