ssh sudo pipe命令

时间:2014-07-17 15:34:01

标签: linux bash shell ssh

此命令有效

ssh -t www.foo.com 'sudo ls -l'

我立即被要求输入密码,一旦输入,我就会得到目录内容

如果我尝试管道这个命令就失败了 - 我永远不会被问到我的密码所以我从来没有得到任何内容。

ssh -t www.foo.com 'sudo ls -l' | grep 'foo'

这是一个基本的例子,我知道我可以在我的" ls"中输出/ grep输出。命令。对于我的应用程序,我需要通过主机上的程序管道输出。

3 个答案:

答案 0 :(得分:0)

ssh -t www.foo.com 'echo your_pass | sudo -S ls -l' | grep 'foo'

答案 1 :(得分:0)

也可能:

ssh -t www.foo.com 'sudo -S ls -l <~/passwd.txt' | grep 'foo'

答案 2 :(得分:0)

您没有得到密码提示的原因是因为您正在将“ssh -t www.foo.com'sudo ls -l'”的输出提供给您正在为'foo'搜索的管道。因此,在这种情况下,密码提示将不会显示,但实际上该过程正在等待您的输入。

尝试在运行命令后获得的空行新行上输入密码。

我尝试了这个并且它有效。仅举例来说,

$ ssh -t user @ host'sudo ls -l /'| grep'root' user @ host的密码:&lt; =====在此之后,它等待用户输入以提供sudo用户的密码。 与主机的连接已关闭。 drwxr-xr-x 2 root root 4096 2011-08-31 15:33 bin dr-xr-xr-x 24 root root 4096 2014-07-14 00:52 bldmnt dr-xr-xr-x 2 root root 4096 2011-03-23 15:51 blr drwxr-xr-x 3 root root 4096 2011-08-31 15:36启动 。 。

试一试,看看它是否适合你。

相关问题