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通过递归遍历出集合中所有元素的方法
Feb 25 Python
Python中函数的参数传递与可变长参数介绍
Jun 30 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
python实现读取并显示图片的两种方法
Jan 13 Python
Python实现ping指定IP的示例
Jun 04 Python
python实现一组典型数据格式转换
Dec 15 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
详解python logging日志传输
Jul 01 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
python如何用matplotlib创建三维图表
Jan 26 Python
python wsgiref源码解析
Feb 06 Python
python自动计算图像数据集的RGB均值
Jun 18 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
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
解决DataFrame排序sort的问题
2018/06/07 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
django使用LDAP验证的方法示例
2018/12/10 Python
python数据化运营的重要意义
2019/11/25 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
python实现的Iou与Giou代码
2020/01/18 Python
Django-migrate报错问题解决方案
2020/04/21 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
团日活动总结怎么写
2014/06/25 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
优秀英文求职信范文
2015/03/19 职场文书
亮剑精神观后感
2015/06/05 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
《绝招》教学反思
2016/02/20 职场文书