gpt4 book ai didi

c++ - 使用 SCP 和 C 或 C++ 进行文件传输

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:19 26 4
gpt4 key购买 nike

以下是我使用 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'对应于远程机器上的远程用户)。

最后将第一步生成的 key 复制到远程机器上的相关文件中。 cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'

现在你应该可以不用密码登录远程机器了。 (为此,我在家里和工作中都使用它)

关于c++ - 使用 SCP 和 C 或 C++ 进行文件传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27395555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com