如何使用 SSH 从 /usr/local/bin 运行二进制文件到运行 macOS BigSur(11.2)的 MacBook Pro M1?

如何使用 SSH 从 /usr/local/bin 运行二进制文件到运行 macOS BigSur(11.2)的 MacBook Pro M1?

我已经在 MacBook Pro M1 上安装了 CMake,并在cmake中建立了符号链接/usr/local/bin。我尝试了不同的方法来调用cmake和检查$PATH。以下是所有案例的报告:

ssh ali@mac cmake
zsh:1: command not found: cmake

ssh ali@mac <<EOF
cmake
EOF
Pseudo-terminal will not be allocated because stdin is not a terminal.
#output from cmake (it works)

ssh ali@mac
cmake
#output from cmake (it works)

ssh ali@mac echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

ssh ali@mac 'echo $PATH'
/usr/bin:/bin:/usr/sbin:/sbin

ssh ali@mac <<EOF
echo $PATH
EOF
Pseudo-terminal will not be allocated because stdin is not a terminal.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

ssh ali@mac
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

ssh ali@mac which cmake
cmake not found

ssh ali@mac <<EOF
which cmake
EOF
Pseudo-terminal will not be allocated because stdin is not a terminal.
/usr/local/bin/cmake

ssh ali@mac
which cmake
/usr/local/bin/cmake

运行该命令ls -l /usr/local/bin/cmake,无论是 ssh 的直接参数还是 heredoc 或在 ssh 连接内,都会给出以下输出:

lrwxr-xr-x  1 root  wheel  42 Mar 25 17:42 /usr/local/bin/cmake -> /Applications/CMake.app/Contents/bin/cmake

我的 Mac 上的软件版本:

sw_vers
ProductName:    macOS
ProductVersion: 11.2.1
BuildVersion:   20D75

我不明白为什么将命令传递给 ssh 的结果与使用 heredoc 传递的结果不同。我也在PermitUserEnvironment PATH/etc/ssh/sshd_config 中设置并重新启动系统,它没有改变任何东西。我没有创建环境文件,因为无法找到 cmake 的情况已经/usr/local/bin$PATH.

答案1

谢谢肯斯特的评论,我了解到我使用 来从本地机器获取 $PATH ssh ali@mac echo $PATH,运行时ssh ali@mac 'echo $PATH'显示/usr/local/bin不是路径的一部分。这回答了我上面的误解。

我能够通过以下方式解决问题为 Mac ssh 设置 PATH

感谢大家的宝贵反馈。

相关内容