此命令有效
ssh -t www.foo.com 'sudo ls -l'
我立即被要求输入密码,一旦输入,我就会得到目录内容
如果我尝试管道这个命令就失败了 - 我永远不会被问到我的密码所以我从来没有得到任何内容。
ssh -t www.foo.com 'sudo ls -l' | grep 'foo'
这是一个基本的例子,我知道我可以在我的" ls"中输出/ grep输出。命令。对于我的应用程序,我需要通过主机上的程序管道输出。
答案 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启动 。 。
试一试,看看它是否适合你。