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学习之asyncore模块用法实例教程
Sep 29 Python
python调用API实现智能回复机器人
Apr 10 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
python实现排序算法解析
Sep 08 Python
python 保存float类型的小数的位数方法
Oct 17 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
python 格式化输出百分号的方法
Jan 20 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
一个入门级python爬虫教程详解
Jan 27 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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/01 无线电
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
浅析php header 跳转
2013/06/17 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
jQuery中读取json文件示例代码
2013/05/10 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
js+canvas实现纸牌游戏
2020/03/16 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
python self,cls,decorator的理解
2009/07/13 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
计算机系毕业生推荐信
2013/11/06 职场文书
农村改厕实施方案
2014/03/22 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
学生保证书范文
2014/04/28 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
集体生日活动方案
2014/08/18 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
未中标通知书
2015/04/17 职场文书
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫