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的Tornado框架中的协程异步实现原理
Apr 23 Python
解密Python中的描述符(descriptor)
Jun 03 Python
Python如何判断数独是否合法
Sep 08 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
对Tensorflow中的变量初始化函数详解
Jul 27 Python
在python中利用KNN实现对iris进行分类的方法
Dec 11 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
python 读取、写入txt文件的示例
Sep 27 Python
Python爬虫之Selenium库的使用方法
Jan 03 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
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
php计算税后工资的方法
2015/07/28 PHP
php语法检查的方法总结
2019/01/21 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
php生成微信红包数组的方法
2019/09/05 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python中文件的读取和写入操作
2018/04/27 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
大学同学聚会邀请函
2014/01/29 职场文书
科学育儿宣传标语
2014/10/08 职场文书
2014年财政所工作总结
2014/11/22 职场文书
小鞋子观后感
2015/06/05 职场文书
2019年工作总结范文
2019/05/21 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
世界文化遗产导游词
2019/08/07 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL