更改 openssh 默认 PATH

更改 openssh 默认 PATH

我正在尝试直接从 ssh 执行命令,并且需要更改目录的 PATH。

> ssh myserver 'echo $PATH'
myuser@myserver's password:
/usr/local/bin:/bin:/usr/bin

我得到了 /usr/local/bin,但我只需要 /bin。我的主目录中设置了 .bashrc 和 .bash_profile,但 PATH 并未从那里获取。我尝试更改 /etc/bashrc 和 /etc/profile,但仍然没有成功。

我已经看到 sshd_config 文件,其中 ssh 是用 PATH=/usr/local/bin:/bin:/usr/bin 编译的。那么有没有办法更改这个默认路径呢?

> cat /etc/ssh/sshd_config
#       $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

答案1

我猜你使用的是 OpenBSD,除非你更改了默认 shell,否则默认 shell 是 ksh(而不是 bash)。当你通过 SSH 运行命令时,它会以非交互方式调用。对于 tsh,我认为没有办法通过修改配置来强制它设置路径。我能想到的两个选项是。

一,您可以在执行命令之前指定路径。

ssh myhost 'PATH=/my/path; echo $PATH'

二,您可以在 /etc/ssh/sshd_config 中将 PermitUserEnvironment 设置为 yes,然后在 ~/.ssh/environment 中创建一个包含类似内容的文件...

PATH=/my/path

希望这可以帮助!

相关内容