簡體   English   中英

使用SCP和C或C ++進行文件傳輸

[英]File transfer using SCP and C or C++

以下是我使用SCP將文件從本地計算機傳輸到另一台計算機的代碼,一切正常,但是當我執行“ system(exec)”命令的程序要求輸入目標用戶密碼時,我的代碼正常。

有沒有辦法在sprintf語句中用另一個'%s'將密碼追加(或添加)到exec char數組。

char exec[180];
sprintf(exec,"scp -o StrictHostKeyChecking=no %s/%s %s@%s:/home",current_path,filename,destination_user,dest_ip);

//printf("\n %s \n",exec);
if(system(exec)==0) 
printf("\nFile %s moved successfully\n",file);
else
printf("\nFile %s not moved successfully\n",file);

此處正確的解決方案是使用RSA或DSA公鑰/私鑰設置無密碼登錄。

該站點執行必要的步驟: http : //www.linuxproblem.org/art_9.html

簡而言之,運行ssh-keygen -t rsa ,並使用默認值,包括“空”密碼短語(否則,系統將要求您輸入密碼短語)。 [在您的機器上執行此操作]

然后使用ssh b@B mkdir -p .ssh創建目標計算機的.ssh目錄( b@B'對應於遠程計算機上的遠程用戶)。

最后,將第一步中生成的密鑰復制到遠程計算機上的相關文件中。 cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys' cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'

現在,您應該可以不用密碼登錄遠程計算機。 (為此,我在家中和工作中都使用它)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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