#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;
}는 C
위의 코드는 내가 복사하는 덤프 파일에 파일을 쓴 짧은 프로그램입니다에서 시스템 콜에서 SCP 명령에 대한 입력을 보내기 다음 사람에게 보낼 수있는 터미널 scp 명령을 사용하여 . scp를 처음 사용할 때 터미널에 사용자가 키를 호스트 이름 목록에 추가할지 묻는 프롬프트가 나타납니다. 그런 다음 암호를 묻는 메시지가 나타납니다. 이 프로그램의 입력을 암호 프롬프트로 수신되도록하려면 어떻게 보내면됩니까? 이 코드는 어떻게 생겼습니까?
EDIT : scp에 대한 시스템 호출이있을 때 문제가 발생합니다. 프로그램이 전체 scp 명령이 실행될 때까지 일시 중지되어 있으므로 그 동안 입력이 더 이상 프로그램에서 가져 오지 않고 있습니다. 그러나 사용자로부터. 내 프로그램에서 scp 암호를 어떻게 전달할 지 모르겠습니다.
아마도 다른 방법이있을 수 있습니다. 그러나 예를 들어 http://www.computerhope.com/unix/yes.htm을 보거나 아니면 필요한 항목으로 파일을 만들고 입력을 리디렉션 할 수 있습니다. – PeterJ
확인 serverfault에 다음 페이지, 거기에 암호를 얻는 데 도움이 될 수 있습니다 : http://serverfault.com/questions/318474/how-to-pass-password-to-scp-command-used-in-bash-script – PeterJ