paramiko模块的使用

来源:互联网 发布:淘宝卖家必须用千牛吗 编辑:程序博客网 时间:2024/05/17 02:20

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

一安装步骤:

a、安装vc for python2.7 下载地址http://www.microsoft.com/en-gb/download/details.aspx?id=44266

b、安装PyCrypto模块 pip install PyCrypto

c、安装paramiko模块 pip install paramiko

或直接下载已编译版本地址http://www.voidspace.org.uk/python/modules.shtml#pycrypto

http://victorjabur.com/2011/06/08/modules-python-library-compiled-for-windows-32-and-64-unofficial-windows-binaries-for-python/

二两种连接linux服务器方法:

1、

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#允许连接不在know_hosts文件中的主机
ssh.connect("某IP地址",22,"用户名", "口令")
2、
t = paramiko.Transport((“主机”,”端口”))
t.connect(username = “用户名”, password = “口令”)
如需密钥改成以下情况连接
t.connect(username = “用户名”, password = “口令”, hostkey=”密钥”)

3、实例

class SSH2(object):

    paramiko.util.log_to_file('paramiko.log')
    def __init__(self,ip,username,passwd):
        self.ip=ip
        self.username=username
        self.passwd=passwd
        try:
            ssh = paramiko.SSHClient()
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect(self.ip,22,self.username,self.passwd)
            self.ssh=ssh
        except:
            print u'远程服务器连接失败,请检查服务器网络是否断开!'


    def Execcmd(self,cmd):
        stdin, stdout, stderr = self.ssh.exec_command(cmd)
        out = stdout.read()
        print out

        return out


    def Upload(self,localpath,remotepath):

sftp=self.ssh.open.sftp()

sftp.get(localpath,remotepath)

sftp.close()


    def closessh():

        ssh.close()

4、服务器下载文件函数实例

    def Download(localpath,remotepath):
        try:
            t = paramiko.Transport((self.ip,22))
            t.connect(username =self.username, password =self.passwd)
            sftp = paramiko.SFTPClient.from_transport(t)
            sftp.put(localpath,remotepath)
            t.close()
        except:

            print u'远程服务器连接失败,请检查服务器网络是否断开!'


0 0