[英]Executing ssh command in c program using popen()
當我嘗試使用popen執行此操作時,它將返回此錯誤,但是當我在終端中運行此命令時,它將起作用!
popen("ssh -n -f *.*.*.* 'sshfs -o nonempty *.*.*.*:/home/foo/bar/ /foo1/foo2/foo3'", "r");
錯誤:
ssh_exchange_identification: Connection closed by remote host
我使用公鑰和私鑰在沒有密碼的情況下使用ssh,並且它們可以正常運行,因為此命令可以在終端中完美運行。
我將其更改為:
popen("ssh -n -f *.*.*.* `sshfs -o nonempty *.*.*.*:/home/foo/bar/ /foo1/foo2/foo3`", "r");
它也返回錯誤。
錯誤:
fuse: bad mount point `/foo1/foo2/foo3': No such file or directory
Cannot fork into background without a command to execute.
我也嘗試通過這種方式來隱藏內部的""
: \\" \\"
但它掛起了!
將ssh替換為/usr/bin/ssh
,對其他命令(如sshfs)執行相同的操作。 指定命令的完整路徑, /usr/sbin/foo
或任何情況。 popen不一定使用您在命令行中具有的相同shell來執行命令。 檢查您的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.