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存储16bit和32bit图像的实例
Dec 05 Python
Python基于百度云文字识别API
Dec 13 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
Python-while 计算100以内奇数和的方法
Jun 11 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
wxpython自定义下拉列表框过程图解
Feb 14 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
六种酷炫Python运行进度条效果的实现代码
Jul 17 Python
python中sys模块的介绍与实例
Apr 17 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
Zend的AutoLoad机制介绍
2012/09/27 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
python中的多线程实例教程
2014/08/27 Python
Python利用ansible分发处理任务
2015/08/04 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
浅谈python常用程序算法
2019/03/22 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Python如何安装第三方模块
2020/05/28 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
服装店营销方案
2014/03/10 职场文书
保证书格式范文
2014/04/28 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
大学军训决心书
2015/02/05 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
提档介绍信范文
2015/10/22 职场文书