【问题标题】:Command not found via ssh with single command, found after connecting to terminal [duplicate]使用单个命令通过 ssh 找不到命令,在连接到终端后找到 [重复]
【发布时间】:2012-05-20 17:18:10
【问题描述】:

可能重复:
Why does an SSH remote command get fewer environment variables then when run manually?

如果我输入命令

ssh 用户@$IP 蚂蚁

然后我收到

bash: ant: 找不到命令

但是当我登录时

ssh 用户@$IP

然后放

蚂蚁

然后工作正常。

Ant 安装在远程和本地机器上。 问题出在哪里?

我试图在谷歌中找到解决方案,但一无所获。

提前感谢您的帮助!

--编辑--

我需要调用一些 bash 脚本,不想将所有路径更改为完整路径。

【问题讨论】:

    标签: linux ssh


    【解决方案1】:

    默认情况下,通过 ssh 连接时不会加载配置文件。要启用此行为,请在 /etc/ssh/sshd_config 中设置以下选项:

    PermitUserEnvironment yes
    

    之后重启ssh

    /etc/init.d/ssh restart
    

    【讨论】:

    • PermitUserEnvironment 不控制用户的配置文件是否在服务器上运行。它仅控制是否支持某些服务器端配置文件中的环境设置。这与 OP 问题的通常原因无关。
    • 完美答案:)
    【解决方案2】:

    指定ant 的绝对路径,如果我没记错的话,当您运行远程ssh 命令时,您的配置文件不会运行。

    【讨论】:

    • 这解决了找不到命令的问题,但现在找不到共享库:error while loading shared libraries: libASC_LibTools.so: cannot open shared object file: No such file or directory
    • 真正的答案imo。但是有没有办法运行配置文件,这样我就可以在没有绝对路径的情况下单独使用命令?
    猜你喜欢
    • 2013-10-30
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2013-06-27
    • 2014-06-08
    • 2011-07-16
    相关资源
    最近更新 更多