首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ssh使用系统远程登录到服务器(char*命令),并执行命令?

问ssh使用系统远程登录到服务器(char*命令),并执行命令?
EN

Stack Overflow用户
提问于 2016-02-13 13:51:36
回答 1查看 1.2K关注 0票数 0

熟悉SSH和(命令)的人执行shell命令!??

我试图从我的C++代码远程登录到多个服务器/机器,并且我必须远程执行一些命令。根据我的经验,我决定使用ssh。但是,现在我想通过(命令)加载和发送我的所有命令。请看下面的代码。

代码语言:javascript
复制
#include "all my headers"
int main()
{
   system("ssh 172.10.10.1");//login to server_one, password=123
   system("ssh 172.10.10.2");//login to server_two, password=1234
   system("ssh 172.10.10.3");//login to server_three,password=12345
   system("ssh 172.10.10.4");//login to server_four, password=123456
  return 0;
}

现在,我的问题是:

  1. 我是否可以同时加载和发送服务器的remote_ip和密码,比如:system("ssh 172.10.10.4 ,123456") password=123456?如果是,怎么做?
  2. 如果以上(1)项已经完成,我将有另一个问题。谢谢。
EN

回答 1

Stack Overflow用户

发布于 2016-02-13 14:00:54

只有为要登录的计算机设置了公钥,才能调用system("ssh ...")。

原因是system()不允许您与您启动的进程进行交互,它只会生成一个新的shell并将相关的字符串传递给shell以供执行,而ssh本身并没有将密码传递给应用程序的方法,您必须实际输入它(如果使用popen,则必须将其发送到ssh的stdin端--但我确实认为,在自动化系统中,公钥是正确的方法)。

如果您仍然需要与创建的进程进行交互,您将需要使用类似于popen的东西,这将允许您在stdin上读取stdout或写入--甚至如果您需要对stdin和stdout进行操作的能力,甚至还可以使用pipe()和fork()。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35380751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档