自动"yes"到 Popen SSH 命令

Automate "yes" to Popen SSH command

本文关键字:SSH 命令 Popen yes 自动      更新时间:2023-10-16

嗨,我正在编写一个C++程序,以使用popen函数自动连接到 AWS 实例。

void initiate_ssh(char ip[100]){
char ssh[250];
FILE* fp;
strcpy(ssh,"ssh -i theKey.pem ec2-user@");
strcat(ssh,ip);
fp=popen(ssh,"w");
if(fp){
// respond yes automatically 
}
pclose(fp);
}

我已经搜索了许多线程,但我只能在 python 中找到类似的情况,但我对 python 不太熟悉。因此,我需要自动通过管道将"yes"传送到popen,以便访问对实例的远程访问。

这里我们看到一个"XY问题"。您希望自动接受主机密钥(这是"X"(。您认为可以通过在提示符下自动键入"是"(这是"Y"(来做到这一点。你被困在上面,所以你问如何做Y。但是有一种更简单的方法可以做X。

以下是执行 X 的方法:

将选项-o StrictHostKeyChecking=no添加到 SSH 命令。

strcpy(ssh,"ssh -o StrictHostKeyChecking=no -i theKey.pem ec2-user@");
//              ^^^^^^^^^^^^^^^^^^^^^^^^^^^

我假设ssh缓冲区已经足够长,可以包含这个额外的选项。