首页 > 解决方案 > 自动“是”到 Popen SSH 命令

问题描述

嗨,我正在编写一个 C++ 程序,以使用该popen功能自动 SSH 连接到 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 不太熟悉。所以我需要自动将“是”传递给popen ,以便获得对实例的远程访问。

标签: c++c

解决方案


在这里,我们看到一个“XY 问题”。您想自动接受主机密钥(这是“X”)。你认为你可以通过在提示符下自动输入“yes”(这是“Y”)来做到这一点。你被困住了,所以你问如何做 Y。但是有一个更简单的方法来做 X。

下面是如何做 X

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

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

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


推荐阅读