python pxssh之实现批量下发ssh公钥文件

#!/usr/bin/env python

‘‘‘
需要注意的几点问题
1、pxssh类,存在于pexpect模块里,如果没有安装此模块请自行安装,如果已经存在此模块,但是没有pxssh类,经验证,那就是此模块的版本太低。请更新至新版本
2、关于os.system()中的命令,这是在执行一个shell命令,且本身sshpass 是实现在执行scp文件下发的时候是为了自动输入对端机器的账户密码,如果sshpass没有安装,请自行安装。
‘‘‘

#!/usr/bin/env python
from pexpect import pxssh
import os

username="root"
passwd="1qaz#EDC"

try:
    for i in range(151,156):
        s = pxssh.pxssh()
        ipaddr= ‘192.168.100.%s‘ % i    #生成一个完整的IP地址
        os.environ[‘ip‘]=str(ipaddr)    #变量互换,python变量可以在shell里拿到
        s.login(ipaddr,username,passwd)     #登录主机(ip,用户,密码)
        print ‘host:%s login complete!‘ % ipaddr
        s.sendline(‘mkdir -p /root/.ssh/‘)    #运行命令,创建一个隐藏ssh目录
        os.system(‘sshpass -p 1qaz#EDC scp /root/.ssh/authorized_keys [email protected]$ip:/root/.ssh/‘)    #下发公钥文件:authorized_keys
        print ‘host:%s Task running ok!‘ % ipaddr
        s.prompt()    #匹配系统提示符
        s.logout()    #断开SSH连接
except pxssh.ExceptionPxssh, e:
    print "pxssh failed on login"
    print str(e)
时间: 2024-11-08 02:51:55

python pxssh之实现批量下发ssh公钥文件的相关文章

python 通过paramiko模块批量执行ssh命令

多台设备批量执行ssh命令,目前是串行,后期会加入多线程实现并行,直接上源码 # 多台设备批量执行ssh命令     #!/usr/bin/env python     # -*- coding:utf-8 -*-     __author__  = 'babyshen'     __version__ = '1.0.0'     import paramiko     class SSh(object):     def __init__(self,port,username,password

使用expect 批量分发ssh公钥

#!/usr/bin/expect if {$argc != 2} {  #首先注意大话号,彼此之间需要空格   send_user "USAGE:expect_sshkey.exp file host"   exit } #define var set file [lindex $argv 0] set host [lindex $argv 1] set password "12345" #spawn spawn ssh-copy-id -i $file &quo

通过expect的自动交互实现ssh公钥批量下发

1.auto_except_ssued_publickey.sh #!/usr/bin/expect (这里要注意执行环境为:#!/usr/bin/expect ) #注意,如果没有expect,请先安装,yum -y install expect 或apt-get -y install expect set timeout 10   set username [lindex $argv 0] #传入第一个参数,用户名 set password [lindex $argv 1] #传入第二个参数

Centos7 Ansible 配置SSH公钥认证

一.简介 Ansible的强大之处在与playbooks中,但是要想很好的使用playbooks,我们首先要具备一些基础.如:如何写一个一次性的脚本命令?怎么知道有哪些模块?各个模块是如何使用的?等. 通过本文,可以了解如何使用一次性命令和部分模块的使用. 安装好Ansible之后,要开始工作,还需要创建一个被控制主机列表清单.默认读取/etc/ansible/hosts,如果该文件不存在,则要收到进行创建. [[email protected] ~]# cat /etc/ansible/hos

批量上传SSH公钥

批量上传SSH公钥                                                  一世浮沉 首先需要安装python yum install python -y 编写一个python脚本 如下: #vi ssh.py #!/usr/bin/python import sys import pexpect ip = sys.argv[1] password = sys.argv[2] expect_list = ['(yes/no)', 'password:']

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

一.概述分析 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作.一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的ABem程序来完成管理功能,如: Puppet.Func. Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如: Ansible. Fabric等. - 下面介绍几款功能类似的自动化运

SFTP基于Key多进程批量并发上传文件实现案例(python)

最近在研究Paramiko,Paramiko可以非常方便的实现基于SSH协议的远程连接,可以基于 口令,也可以无口令RSA非对称密钥,亦可以实现SFTP上传下载操作,安全高效,再结合多 进程或者是多线程就可以实现并行处理,写了一个简单的SFTP基于Key多进程批量并发上传 文件的实现案例,供以后参考. 安装加密模块和Paramiko模块 下载:pycrypto-2.6.1.tar.gz paramiko-1.10.1.tar.gz 安装: tar -zxf pycrypto-2.6.1.tar.

自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机

目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6.ansible简单使用 二.ansible-shell简介 2.1.ansible-shell是什么 2.2.ansible-shell安装方式 2.3.ansible-shell简单使用 三.使用ansible的authorized_key模块批量推送公钥到远程主机 3.1.生产秘钥对 3.2.使

批量上传公钥到linux服务器

一直以来,都通过ssh-copy-id在手动上传公钥,想着如果有上千台服务器需要上传公钥的话,这个方法就行了.试着实现下批量上传公钥到服务器,介绍本人试的一个方法. 1: 先通过python脚本来试一台机器,python脚本如下: #!/usr/bin/python   import sys  import pexpect   ip = sys.argv[1] password = sys.argv[2] expect_list = ['(yes/no)', 'password:']   p =