#include <stdlib.h>
#include <unistd.h>
int main()
{
int euid = geteuid();
setreuid(euid, euid);
system("echo hi");
system("cp test_file ~/dump.txt");
system("scp ~/dump.txt host@ipaddress:~");
return 0;
}
上面的代码是我编写的一个简短程序,它将文件复制到转储文件,然后使用终端scp命令将其发送给某人。当第一次使用scp时,终端会出现提示,询问用户是否要将密钥添加到主机名列表或类似名称。然后它会提示输入密码。如何从该程序发送输入以便通过密码提示接收?那段代码是什么样的?
编辑:我遇到的问题是当系统调用scp时,程序暂停直到整个scp命令被执行,所以当发生这种情况时,输入不再从程序中获取,但是来自用户。我不知道如何从我的程序中传入scp的密码。
答案 0 :(得分:1)
使用:
system("scp -o StrictHostKeyChecking=no ~/dump.txt host@ipaddress:~");
此选项会在不提示的情况下自动将新密钥添加到known_hosts文件中。