python pexpect ssh 远程登录服务器的方法


Posted in Python onFebruary 14, 2019

使用了python中的pexpect模块,在测试代码之前,可输入python进入交互界面,输入help('pexpect'),查询是否本地含有pexpect模块。

如果没有,linux系统输入 easy_install pexpect便可自动安装。

测试代码,连接127.0.0.1

下面是我手动连接127.0.0.1, 发现只有在首次使用ssh连接127.0.0.1时,需要输入yes or no ,而后再次使用ssh ,则不需要再次输入yes

直接输入密码即可。

python pexpect ssh 远程登录服务器的方法

后续测试代码是二次链接,无需查询是否需要输入yes or no

import pexpect 
def send_command(child, cmd):
  child.sendline(cmd)
  child.expect(PROMT)
  print child.before
def connect(user, host, password):
  ssh_newkey = 'Ary you sure you want to continue connecting'
  connStr = 'ssh ' + user + '@' + host
  child = pexpect.spawn(connStr)
  '''
  ret = child.expect([pexpect.TIMEOUT, ssh_newkey])
  if ret == 0:
    print "[-] Error 1"
    return
  elif ret == 1:
    child.sendline('yes')
  '''
  res = child.expect([pexpect.TIMEOUT, '[P|p]assword:'])
  if res == 0:
    print "[-] Error 2"
    return
  elif res == 1:
    child.sendline(password)
  child.expect(PROMT)
  return child
def main():
  host = '127.0.0.1'#测试主机ip或者主机名
  user = 'root'#测试账号
  password = 'root'#测试密码
  child = connect(user, host, password)
  send_command(child, 'w')
if __name__ == '__main__':
  main()

可以用pxssh模块更简单来完成ssh的连接

from pexpect import pxssh
def send_command(s, cmd):
  s.sendline(cmd)
  s.prompt()
  print s.before
def connect(host, user, password):
  try:
    s = pxssh.pxssh()
    s.login(host, user, password)
    return s
  except:
    print "error"
    exit(0)
def main():
  s = connect('127.0.0.1', 'root', '15110506010')
  send_command(s, 'whoami')
if __name__ == '__main__':
  main()

批量连接肉鸡。

from pexpect import pxssh
botnet = []
class client:
	def __init__(self, user, host, password):
		self.user=user
		self.host=host
		self.password=password
		self.child=self.connect()
	def connect(self):
		try:
			s = pxssh.pxssh()
			s.login(self.host, self.user, self.password)
			return s
		except Exception, e:
			print "Error *" + str(e)
	def send_command(self, cmd):
		self.child.sendline(cmd)
		self.child.prompt()
		return self.child.before
def addclient(user, host, password):
	c = client(user, host, password)
	botnet.append(c)
def botnetcommand(command):
	for c in botnet:
		output = c.send_command(command)
		print "ip: " + str(c.host)
		print output
def main():
	addclient('root', '127.0.0.1', 'toor')
	addclient('root', '****', '*****')
	botnetcommand('pwd')
if __name__=='__main__':
	main()

以上这篇python pexpect ssh 远程登录服务器的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
对Python的Django框架中的项目进行单元测试的方法
Apr 11 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Python 批量读取文件中指定字符的实现
Mar 06 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
python 爬取小说并下载的示例
Dec 07 Python
Python urlopen()参数代码示例解析
Dec 10 Python
python 用pandas实现数据透视表功能
Dec 21 Python
Python之时间和日期使用小结
Feb 14 #Python
对Python Pexpect 模块的使用说明详解
Feb 14 #Python
python获取交互式ssh shell的方法
Feb 14 #Python
对python多线程SSH登录并发脚本详解
Feb 14 #Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 #Python
python 实现selenium断言和验证的方法
Feb 13 #Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 #Python
You might like
咖啡常见的种类
2021/03/03 新手入门
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
JavaScript replace(rgExp,fn)正则替换的用法
2010/03/04 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
Python中编写ORM框架的入门指引
2015/04/29 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
Python通过Pillow实现图片对比
2020/04/29 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
Hotels.com印度:酒店预订
2019/05/11 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
初中英语教学反思
2014/01/25 职场文书
函授本科自我鉴定
2014/02/04 职场文书
股东协议书范本
2014/04/14 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
护士医德考评自我评价
2015/03/03 职场文书
团委工作总结2015
2015/04/02 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python