Python实现ssh访问服务器

windows下可以通过putty以ssh方式连接linux主机,但是实际使用putty会被乱码困扰。

在这里利用python,小试牛刀,写一个能利用ssh协议访问服务器的例子。

1.扩展模块:

需要从网上下载这三个扩展模块:

PyCrypto下载地址:https://www.dlitz.net/software/pycrypto/

paramiko下载地址:http://www.lag.net/paramiko/

edssa下载地址:https://pypi.python.org/pypi/ecdsa/0.9 

上面有些软件可能需要用svn客户端进行下载比较方便,因为放在了github 托管了

不过很可惜 我上面那个地址下载的PyCrypto折腾半天,可能是我windows 7 x64位系统的原因,没有成功

最后是在http://www.voidspace.org.uk/downloads/pycrypto26/这个地方找到了相应的exe文件,安装成功了,PyCrypto挺重要,因为只有安装成功pycrypto,才能安装好paramiko。

这些顺利完成后,用import paramiko试试,可以说明安装成功了。

至于代码其实也是在网上找来的,测试一下

#-*- coding: utf-8 -*-  
#!/usr/bin/python   
import paramiko  
import threading  
def ssh2(ip,username,passwd,cmd):  
    try:  
        ssh = paramiko.SSHClient()  
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  
        ssh.connect(ip,22,username,passwd,timeout=5)  
        for m in cmd:  
            stdin, stdout, stderr = ssh.exec_command(m)  
#           stdin.write("Y")   #简单交互,输入 ‘Y’   
            out = stdout.readlines()  
            #屏幕输出  
            for o in out:  
                print o,  
        print '%s\tOK\n'%(ip)  
        ssh.close()  
    except :  
        print '%s\tError\n'%(ip)  
if __name__=='__main__':  
    cmd = ['cal','echo hello!']#你要执行的命令列表  
    username = ""  #用户名  
    passwd = ""    #密码  
    threads = []   #多线程  
    print "Begin......" 
    for i in range(1,254):  
        ip = '192.168.1.'+str(i)  
        a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))   
        a.start() 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值