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 [email protected]:~");
return 0;
上面的代码是一个简短的程序,我写的是将文件复制到转储文件输入发送给SCP命令,然后使用终端scp命令将其发送给他人。当第一次使用scp时,在终端上出现提示,询问用户是否想将密钥添加到主机名列表或类似的东西。然后它会提示输入密码。我怎样才能从这个程序发送输入,以便通过密码提示接收它?代码是什么样的?
编辑:我面临的问题是,当系统调用scp时,程序暂停,直到整个scp命令执行完毕,所以在发生这种情况时,输入不再从程序中取出,但来自用户。我不知道如何从我的程序传入scp密码。
可能还有其他方法,但是如果期望a可以看到yes命令http://www.computerhope.com/unix/yes.htm或者您可以创建一个需要的文件并重定向输入 – PeterJ
Check在serverfault上的以下页面,它可能有助于获取密码:http://serverfault.com/questions/318474/how-to-pass-password-to-scp-command-used-in-bash-script – PeterJ