我正在尝试以超级用户身份通过 远程服务器上运行命令ssh
。为此,我从 macOS 传递命令,ssh -t
如下所示:
bash-5.2$ ssh -t [email protected] "sudo echo Hi"
我收到登录服务器的密码提示,但随后出现以下错误,而不是 sudo 的密码提示(无论我与 sudo 使用哪个命令):
bash: line 1: sudo: command not found
Connection to server.com closed.
我不明白为什么会发生这种情况。当我登录服务器并单独运行命令时,它工作正常。所以这有效:
bash-5.2$ ssh [email protected]
... Password:
Last login: ...
bash-5.1$ sudo echo hi
Password:
Last login: ...
hi
我对此很陌生,所以我可能会忽略一些明显的事情。
答案1
如果sudo
已安装,则可能不在您的路径中。
sudo
通过运行which sudo
或 来查看是否是您的路径echo $PATH
。如果 sudo 不在您的路径中,则您的路径变量可能会损坏。您可以尝试通过执行通用位置sudo /usr/bin/sudo
或运行locate sudo | grep bin
来尝试查找其位置来测试这一点。