python pexpect ssh 远程登录服务器
来源:互联网 发布:d3.js和echarts 对比 编辑:程序博客网 时间:2024/06/05 20:31
使用了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
直接输入密码即可。
后续测试代码是二次链接,无需查询是否需要输入yes or no
import pexpect def send_command(child, cmd): child.sendline(cmd) child.expect(PROMT) print child.beforedef 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 childdef 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 pxsshdef send_command(s, cmd): s.sendline(cmd) s.prompt() print s.beforedef 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 pxsshbotnet = []class client:def __init__(self, user, host, password):self.user=userself.host=hostself.password=passwordself.child=self.connect()def connect(self):try:s = pxssh.pxssh()s.login(self.host, self.user, self.password)return sexcept Exception, e:print "Error *" + str(e)def send_command(self, cmd):self.child.sendline(cmd)self.child.prompt()return self.child.beforedef 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 outputdef main():addclient('root', '127.0.0.1', 'toor')addclient('root', '****', '*****')botnetcommand('pwd')if __name__=='__main__':main()
阅读全文
0 0
- python pexpect ssh 远程登录服务器
- Python + Pexpect远程监控服务器
- python-pexpect模块的使用(ssh服务器 自动登录批量执行scp)
- ssh远程登录服务器
- SSH远程登录服务器
- SSH远程登录服务器
- Python pexpect通过ssh批量登录并执行命令
- 通过ssh登录远程服务器
- ssh证书远程登录服务器
- ssh远程登录数据库服务器
- centos7 ssh远程登录服务器
- CentOS SSH远程登录服务器
- python---pexpect的ssh模拟ssh登陆
- pexpect通过ssh执行远程命令
- 配置Linux服务器SSH远程密钥登录
- ssh登录远程服务器修改gcc版本
- Ubuntu下通过SSH远程登录服务器
- SSH使用私钥无密码登录远程服务器
- 量化模型的分类
- echo "/aaa/bbb/ccc" | sed 's/.*\///g'
- Linux安装nginx
- jstack和线程dump分析
- 对基于Spring-Structs-Hibernate做的一个小项目的理解
- python pexpect ssh 远程登录服务器
- A(里面加载webview) activity 跳转至 A activity,按返回键前一个A activity数据没有了
- Android启动的init进程
- 使用JWT和Spring Security保护REST API
- 水平垂直居中
- linux chkconfig --list 小解
- cocos2dx中的内存加载PLIST
- 算法分析与设计第十六周:582. kill process
- springboot mybatis 实体类正常 报错找不到