簡體   English   中英

使用popen()在C程序中執行ssh命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM