---
author: ''
category: 技术
comments_data: []
count:
  commentnum: 0
  favtimes: 1
  likes: 2
  sharetimes: 0
  viewnum: 21786
date: '2013-10-12 23:00:00'
editorchoice: false
excerpt: 是时间写点python代码了。我爱自动化的东西，今天我将告诉大家怎么使用python通过ssh连接你的机器，并在上面运行命令。这并不难，但是用python来做也不是很简单，因为要用很多模块和库来完成这个任务。
  你是不是很好 ...
fromurl: ''
id: 2090
islctt: true
largepic: /images/p/201310/12/162447uryy3s391bz931b9.png
permalink: /article-2090-1.html
pic: /images/p/201310/12/162447uryy3s391bz931b9.png.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: 是时间写点python代码了。我爱自动化的东西，今天我将告诉大家怎么使用python通过ssh连接你的机器，并在上面运行命令。这并不难，但是用python来做也不是很简单，因为要用很多模块和库来完成这个任务。
  你是不是很好 ...
tags:
- Python
- SSH
thumb: false
title: 用Python来SSH连接到你的机器
titlepic: false
translator: flsf
updated: '2013-10-12 23:00:00'
---

是时间写点python代码了。我爱自动化的东西，今天我将告诉大家怎么**使用python通过ssh**连接你的机器，并在上面运行命令。这并不难，但是用python来做也不是很简单，因为要用很多模块和库来完成这个任务。 你是不是很好奇本教程将会使用什么模块呢?


我们将使用Python中 pexpect 模块的 pxssh 类，它用于处理一些自动化的需求，比如ssh和ftp。想使你的系统管理生活尽可能的简单吗？那么，请关注本教程并且尝试尽可能多的学习吧。OK，OK，看我这里，下面我将给出关于pxssh的一些简单的描述。你也可以在python的交互shell导入pxssh 后，键入help(pxssh)以得到更多关于pxssh的信息。


**pxssh介绍**


pxssh 基于pexpect。它是pexpect.spawn的扩展类，专门用来建立SSH连接。我经常使用python的pxssh进行ssh连接。 pxssh 使用shell提示符从远程主机来同步输出。为了使这更牛x，它把shell提示符设置的比$或#还独特。这应该可以在大多数Borne/bash或csh shell上工作。


你可以在[这里](http://pexpect.sourceforge.net/pxssh.html)看到更多关于pxssh。


现在开始吧。


第一步，我们导入所有需要的东西，并且给机器详情分配变量,就像图解1.


 ![](/images/p/201310/12/162447uryy3s391bz931b9.png)


图解 1


之后我们创建一个函数，使用pxssh创建并开始一个到ssh服务器的连接。


 ![](/images/p/201310/12/162449snlyvq8ymlzkr6uq.png)


图解 2


请仔细学习我们是是怎么用try和except来处理错误的.在这里可以阅读更多关于python的错误处理.


下一步是什么?


下一步是在两个机器间的ssh连接建立之后，创建一个函数来给机器发送命令.


 ![](/images/p/201310/12/162450qettguztc4pp4h7x.png)


图解 3


 ![](/images/p/201310/12/162451l672i11i3l1ihf13.png)


图解 4


关闭文件并保存它. 现在它已经准备好可以运行了.


 


via: <http://www.unixmen.com/use-python-ssh-machine/>


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


译者：[flsf](https://github.com/flsf) 校对：[jasminepeng](https://github.com/jasminepeng)