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 相关文章推荐
pygame学习笔记(4):声音控制
Apr 15 Python
python和ruby,我选谁?
Sep 13 Python
利用Python如何生成hash值示例详解
Dec 20 Python
django 在原有表格添加或删除字段的实例
May 27 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
python使用udp实现聊天器功能
Dec 10 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
python flask框架实现重定向功能示例
Jul 02 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
用Python写一个自动木马程序
Sep 17 Python
python编程的核心知识点总结
Feb 08 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
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
python实现自动重启本程序的方法
2015/07/09 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
Java面试题汇总
2015/12/06 面试题
劳动模范事迹材料
2014/01/19 职场文书
团代会宣传工作方案
2014/05/08 职场文书
文明班级建设方案
2014/05/15 职场文书
代办社保委托书范文
2014/10/06 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
小学生运动会广播
2015/08/19 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang