Paramiko介绍
Paramiko遵循SSH2协议的python类库,支持以加密和认证的方式,可以进行远程服务器的连接。其中ansible也是通过Paramiko来进行ssh连接的。用它做远程管理时仅需要在本地上安装相应的软件(python以及PyCrypto),对远程服务器没有配置要求,对于连接多台服务器,进行复杂的连接操作特别有方便。
安装
Paramiko安装依赖于pycrypto、ecdsa模块
- shell> wget https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.13.tar.gz
- shell> tar zxvf ecdsa-0.13.tar.gz
- shell> cd ecdsa-0.13
- shell> python setup.py install
- shell> wget https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz
- shell> tar zxvf pycrypto-2.6.1.tar.gz
- shell> cd pycrypto-2.6.1
- shell> python setup.py install
- shell> wget https://pypi.python.org/packages/source/p/paramiko/paramiko-1.16.0.tar.gz
- shell> unzip paramiko-1.16.zip
- shell> cd paramiko-1.16
- shell> python setup.py install
Paramiko使用示例
执行远程命令
- #!/usr/bin/python
- import paramiko
- ssh = paramiko.SSHClient()
- # 允许连接不在known_hosts文件列表中的主机
- ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- ssh.connect("远程IP,端口,"用户", "密码")
- stdin, stdout, stderr = ssh.exec_command("ls -l /tmp")
- print(stdout.readlines())
- ssh.close()
上传文件到远程服务器
- #!/usr/bin/python
- import paramiko
- tp = paramiko.Transport("远程IP",端口)
- tp.connect( username = "用户", password = "密码")
- sftp = paramiko.SFTPClient.from_transport(tp)
- remotepath = '/tmp/Python-2.7.9.tgz'
- localpath = '/tmp/Python-2.7.9.tgz'
- sftp.put(localpath, remotepath)
- tp.close()
从远程服务器下载文件
- #!/usr/bin/python
- import paramiko
- tp = paramiko.Transport("远程IP",端口)
- tp.connect( username = "用户", password = "密码")
- sftp = paramiko.SFTPClient.from_transport(tp)
- remotepath = '/tmp/Python-2.7.9.tgz'
- localpath = '/tmp/Python-2.7.9.tgz'
- sftp.get(remotepath, localpath)
- tp.close()
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29733787/viewspace-2074776/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29733787/viewspace-2074776/