如何在Python中与外部外壳互动?

时间:2018-08-22 08:14:20

标签: python-2.7 ssh putty

问题描述

当前,我需要使用Putty手动连接远程服务器,该过程如下所示:

  1. 打开腻子
  2. 选择已保存的会话(使用CAPI证书集创建)
  3. 在弹出窗口中输入PIN码以插入分配给证书的卡
  4. 在远程服务器上执行任何操作

我想使该过程自动化以使其使用Python编写的代码运行。

我的步骤

从命令行链接

我发现有一个名为Plink的程序,该程序可让我连接保存的会话。通过命令行,我得以执行:

plink name_of_session

然后我只需要在弹出窗口中提供一个PIN,然后执行我想要的任何命令即可。

通过代码运行plink

现在最大的问题是:我想从代码中运行该plink并与远程服务器进行交互。所以我开始:

p = Popen("plink name_of_session", shell=True)
stdout, stderr = p.communicate()

但是这里的问题是我只能在控制台中手动执行命令。

所以问题是::如何与新的shell交互以发送命令并自动从代码接收输出?也许还有其他方法可以代替运行plink?

0 个答案:

没有答案