0
#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 的密码。

4

1 回答 1

1

利用:

system("scp -o StrictHostKeyChecking=no ~/dump.txt host@ipaddress:~");

此选项将自动将新密钥添加到 known_hosts 文件,无需提示。

于 2012-12-30T05:16:11.053 回答