使用 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 successfullyn",file);
else
printf("nFile %s not moved successfullyn",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'
.
现在,您应该能够在没有密码的情况下登录到远程计算机。(我在家里和工作中都使用它来达到这个目的)
相关文章:
- C++文件传输的校验和算法
- 如何在Ubuntu中将内容从一个文件传输到另一个文件
- 使用 MQTT 进行文件传输
- 如何将数据类型声明从.cpp文件传输到 .cu 文件
- 如何将字符串形式的值从类文件传输到输出文件
- TCP/IP文件传输C
- 如何确保TCP文件传输完成(c++)
- 使用 Win32/WINAPI 通过内存映射文件传输数据
- 通过网络中的套接字进行文件传输时,该程序中的文件传输错误是什么
- 将内容从 C 文件传输到C++流
- 使用NS2/NS3实现P2P文件传输
- C++读取文件传输到2d数组
- 使用winsock(c++)进行文件传输
- 使用 SCP 和 C 或 C++ 进行文件传输
- 仿真过程后.cpp将变量从文件传输到 Matlab 工作区
- 文件传输C++
- 如何在C++中将文本文件传输到数组2D
- 停止并等待文件传输协议,何时停止侦听
- 使用 htonl & htons 进行 TCP 文件传输
- 用c++设计了一个文件传输协议