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 に答える