paramiko

Can I call Channel.invoke_shell() without calling Channel.get_pty() beforehand, when NOT using Channel.exec_command()

核能气质少年 提交于 2020-05-08 17:01:07
问题 I have read Paramiko docs multiple times. Still I am not able to find an answer for question I had: Why can't I call channel.invoke_shell() without calling channel.get_pty() beforehand? – Here is my understanding from the docs – it is not necessary to call channel.get_pty() if I want to use channel.exec_command() . But what if I would like to use an interactive shell with channel.send() or channel.recv() . Is it mandatory? Here is my try: client = paramiko.SSHClient() # Set SSH key parameters

python学习之自动化运维项目

血红的双手。 提交于 2020-05-05 10:21:30
项目实战: CMDB自动化资产扫描 1. 项目介绍 本项目通过KVM虚拟化搭建Linux系统集群,使用 Ansible实现Linux集群下的批量部署与自动化管理, 实现Web形式的自动化运维系统,集中批量控制服务器, 最终实现能支撑1000台实例的环境提供管理和自 动化任务, 提高运维工程师的工作质量和效率。 项目基于HTTP实现自动化任务接受和响应接口设计, 基于MySQL用作的关系型数据存取, 基于Redis的任务锁机制和消息队列, 基于MongoDB的事件日志 记录, 最终实现邮件通知功能、敏感数据加密功能、日志事件记录功能。 这个文档主要目标是实现自动化资产扫描, 扫描指定网段的服务器资产信息。 互联网快速发展 网站用户规模、使用快速上升 要求庞大系统支撑能力 更加快速的运维效率应对突发流量 更加自动化的方式减少人工投入成本 更加可靠的技术手段,保障系统的稳定 云时代 腾讯云、阿里云、亚马逊云、青云等云厂商的市场份额不断增加 大部分技术架构设计不再以网络设计、IDC和系统硬件等方面作为重点 运维基础的、繁琐的工作逐步减少 小公司也不再需要一个运维工程师或者系统工程师 结论: 在这样的时代背景下, 大型互联网公司为了应对市场的快速变化,就需要运维自动化。 2. 项目技术分析 运维自动化难点和痛点 开发人员: 没有系统管理、网络管理等相关运维工作经验,项目设计往往是大打折扣的。

如何在CentOS 8上安装Python2 Python3

放肆的年华 提交于 2020-05-04 07:08:22
如何在CentOS 8上安装Python 如您所知,有两个Python版本正在积极开发中。 尽管Python 2以前得到良好的支持和使用,但Python 3被认为是该语言的未来。 默认情况下,RHEL/CentOS 8没有一个系统级的python命令来避免将用户锁定到特定的python版本。相反,它让用户选择安装、配置和运行特定的Python版本。诸如yum之类的系统工具使用内部Python二进制和库。 本指南将引导您逐步在CentOS 8上安装Python 3和Python 2。 在CentOS 8上安装Python 3 要在CentOS 8上安装Python 3,请以root或sudo用户身份在终端中运行以下命令: sudo dnf install python3 要验证安装,请输入以下命令检查Python版本: [linuxidc@localhost ~]$ python3 --version Python 3.6.8 在撰写本文时,CentOS存储库中可用的Python 3的最新版本是“ 3.6.x”: 该命令还会安装pip。 要运行Python,您需要明确输入python3并运行pip输入pip3。 您应该始终喜欢使用yum或dnf安装发行版提供的python模块,因为它们已受支持并经过测试可以在CentOS 8上正常工作。仅在虚拟环境中使用pip。

[原创]内网渗透SSH工具sshcmd/sshshell/sshcrack/批量上控/Kali开启SSH

南楼画角 提交于 2020-05-02 05:11:33
0x000 目录 1.Kali开启SSH 2.SSH连接工具优缺点 3.渗透专用SSH连接工具 4.ssh执行cmd源码 5.批量SSH密码破解 6.SSH批量上控 7.相关工具下载 0x001 SSH配置 1.打开文件 etc/ssh/sshd_config 2.添加permitrootlogin yes 3.将#PasswordAuthentication yes的注释去掉 0x002 重启ssh服务 /etc/init.d/ssh restart /etc/init.d/ssh stop (为了安全测试完ssh工具后可将其关闭) 0x003 SSH连接 1.sshshell交互式连接 sshshell.exe 192.168 . 1.106 22 root toor sshshell.exe 单文件交互式SSH连接工具(优点类似putty可保持会话,缺点也类似putty保持连接) 以前我没写有人说你要是加上保持会话功能比较好,说话的语气像是这个很难你没能力实现一样 搞渗透为了隐蔽才没让其保持连接,不是没能力,你要是正常连接网上工具很多功能还强大的很 不过对我来说很多功能用不到,而且很多工具又大又需要安装过于麻烦,所以我顺手写了这工具 使用putty或网上其它SSH管理工具连接目标机,管理员均可看到攻击者一直在连接 有些人连接SSH去操作没多久,IP被BAN还不知道什么原因

Python pip高级用法

旧时模样 提交于 2020-04-17 17:33:12
1.pip 高级用法 为了便于用户安装和管理第三方库和软件,越来越多的编程语言拥有自己的包管理工 具,如 nodejs 的 npm, ruby 的 gem。 Python 也不例外,现在 Python 生态主流的包管理工 具是 pip。 2.pip 介绍 pip 是一个用来安装和管理 Python 包的工具,是 easy_install 的替代品,如果读者使用 的是 Python 2.7.9+或 Python 3.4+版本的 Python,则已经内置了 pip,无须安装直接使用即 可。 如果系统中没有安装 pip,也可以于动安装,如下所示: sudo apt-get install python-pip 安装 pip 以后,如果有新的 pip 版本,它也会提示用户进行升级: pip install -U pip pip 之所以能够成为最流行的包管理工具,并不是因为它被 Python 官方作为默认的包 管理器,而是因为它自身的诸多优点。 pip 的优点有: D pip 提供了丰富的功能,其竞争对手 easy_install 则只支持安装,没有提供卸载和显 示已安装列表的功能; D pip 能够很好地支持虚拟环境; 口 pip 可以通过 requirements.txt 集中管理依赖; 口 pip 能够处理二进制格式(.whl); D pip 是先下载后安装,如果安装失败,也会清理干净

Python pip高级用法

孤街浪徒 提交于 2020-04-17 17:09:39
1.pip 高级用法 为了便于用户安装和管理第三方库和软件,越来越多的编程语言拥有自己的包管理工 具,如 nodejs 的 npm, ruby 的 gem。 Python 也不例外,现在 Python 生态主流的包管理工 具是 pip。 2.pip 介绍 pip 是一个用来安装和管理 Python 包的工具,是 easy_install 的替代品,如果读者使用 的是 Python 2.7.9+或 Python 3.4+版本的 Python,则已经内置了 pip,无须安装直接使用即 可。 如果系统中没有安装 pip,也可以于动安装,如下所示: sudo apt-get install python-pip 安装 pip 以后,如果有新的 pip 版本,它也会提示用户进行升级: pip install -U pip pip 之所以能够成为最流行的包管理工具,并不是因为它被 Python 官方作为默认的包 管理器,而是因为它自身的诸多优点。 pip 的优点有: D pip 提供了丰富的功能,其竞争对手 easy_install 则只支持安装,没有提供卸载和显 示已安装列表的功能; D pip 能够很好地支持虚拟环境; 口 pip 可以通过 requirements.txt 集中管理依赖; 口 pip 能够处理二进制格式(.whl); D pip 是先下载后安装,如果安装失败,也会清理干净

利用Python进行网络自动化的学习记录(1)

风流意气都作罢 提交于 2020-04-16 16:12:59
【推荐阅读】微服务还能火多久?>>> 写在前面:NetOps势在必行,现在开始并坚持便不算晚 # 实验环境 操作系统:windows10 企业版 虚拟机:VMware® Workstation 14 Pro或以上(必须) 模拟器:EVE-NG(搭建过程待补充分享) 编辑器:MS VS Code Python版本:3.8.2 SSH模块:Paramiko or Netmiko 实验一:查看单台cisco交换机的接口IP信息 思路 定义设备信息 利用netmiko函数进行ssh连接 输入想要执行的命令(此命令与登陆交换机CLI后输入的一样) 打印输出执行的结果 代码 结果 讲解 第1行引入netmiko模块,它将帮助我们通过SSH协议连接上设备 3-6行初始化设备的ip、账号密码及设备类型,使用netmiko必须定义设备类型 第7行进行ssh 第13行通过函数send_command向设备发送了命令 sh ip int br 第15行将结果打印输出在屏幕上 问题/改进点 我想查看设备所有配置怎么办,将‘sh ip int br’替换为‘show run ’出现报错‘% Invalid input detected at '^' marker.’ 我想配置设备,如添加Lo地址该怎么办 来源: oschina 链接: https://my.oschina.net/u/4369158

用Python远程登陆服务器的最佳实战,面试必学

自古美人都是妖i 提交于 2020-04-15 16:01:29
【推荐阅读】微服务还能火多久?>>> 在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。 在 shell 环境中,我们是这样子做的。 $ sshpass -p ${passwd} ssh -p ${port} -l ${user} -o StrictHostKeyChecking=no xx.xx.xx.xx "ls -l" 复制代码 注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教! 然后你会发现,你的输出有很多你并不需要,但是又不去不掉的一些信息(也许有方法,请留言交流),类似这样 host: xx.xx.xx.xx, port: xx Warning: Permanently added '[xx.xx.xx.xx]:xx' (RSA) to the list of known hosts. Login failure: [Errno 1] This server is not registered to rmp platform, please confirm whether cdn server.

如何实现Git服务间同步

人走茶凉 提交于 2020-04-14 10:54:19
【推荐阅读】微服务还能火多久?>>> 好久没写博客了,虽然也没写几篇^_^...露个脸,表示还活跃在互联网行业中...不说没用的了,分享一下如何实现Git服务间的同步。 Git服务我们一般多会使用gitlab-rake工具定时做备份,当出现问题时利用备份恢复,那是否有一种需求是另外一个环境也需要部署一套Git服务,且需要和前一套Git服务去同步的,即使做冷备,既省去了恢复时间,也达到了定时做恢复演练的目的。 目前我们另外一个环境就遇到了这样的需求,当然可以研究学习Git API去实现,但由于目前需求对同步实时性要求不高,于是我准备用一个直接简单粗暴的方式来实现,其实就是拿Git备份去另外一套环境做自动恢复,交互问题我们交给expect工具来解决。 下面分别分享下Python和Shell脚本作为参考学习,同步时间则可以调整定时备份的时间及恢复时间即可,内容大同小异,思路基本一致: #!/usr/bin/python # -*- coding: utf-8 -*- import os import sys import pexpect import paramiko # 备份服务器的IP地址、用户名 git_src_host = "xxx.xxx.xxx.xxx" git_src_user = "xxx" git_src_port = "22" # 地址自行根据环境变更 private

python爬虫教程: 通过SSHTunnelForwarder隧道连接redis的方法

白昼怎懂夜的黑 提交于 2020-03-31 16:05:24
今天小编就为大家分享一篇python 通过SSHTunnelForwarder隧道连接redis的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 背景:我司Redis服务器使用的亚马逊服务,本地需要通过跳板机,然后才有权限访问Redis服务。 连接原理:使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本地开启一个转发端口给跳板机远程Redis服务使用。 两种思路: 1、通过SSHTunnelForwarder,paramiko模块,先ssh到跳板机,然后在跳板机上(或者内部服务器上),获取到权限,然后远程Redis。 2、使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本地开启一个转发端口给跳板机远程Redis服务使用。 隔夜利息 思路一: private_key_path = '/Users/xxx/.ssh/id_rsa' rsaKey = paramiko.RSAKey.from_private_key_file(private_key_path) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(跳板机或者内网服务器IP或者域名, 22,