回到顶部
ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。
有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。
由于paramiko属于第三方库,所以需要使用如下命令先行安装
1 |
|
paramiko包含两个核心组件:SSHClient和SFTPClient。
1 2 3 4 5 |
|
SSHClient常用的方法介绍
connect():实现远程服务器的连接与认证,对于该方法只有hostname是必传参数。
1 2 3 4 5 6 7 8 9 10 11 |
|
set_missing_host_key_policy():设置远程服务器没有在know_hosts文件中记录时的应对策略。目前支持三种策略:
1 2 3 4 5 |
|
exec_command():在远程服务器执行Linux命令的方法。
open_sftp():在当前ssh会话的基础上创建一个sftp会话。该方法会返回一个SFTPClient对象。
1 2 3 4 |
|
SSHClient常用的方法举例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
密钥连接方式
1 2 3 4 5 6 7 8 9 10 11 |
|
SSHClient 封装 Transport
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
SFTPClient常用方法介绍
1 2 3 4 5 6 7 8 9 10 |
|
SFTPClient常用方法举例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
参考资料
武沛齐:http://www.cnblogs.com/wupeiqi/p/5699254.html
Alex堡垒机:http://www.cnblogs.com/alex3714/articles/5286889.html
http://www.cnblogs.com/dachenzi/articles/7954443.html
----------------------------------------------------------------------------------------------------
#!/usr/bin/env python
#coding:utf-8
import paramiko
username = ''
password = ''
hostname = ''
port = 22
try:
t = paramiko.Transport((hostname, port))
t.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put("/home/test/info.db", "/data/test/info.db")
sftp.get("/data/test/info_1.db", "/home/test/info_1.db")
sftp.mkdir("/home/testdir", 0755)
# sftp.rmdir("/home/testdir")
sftp.rename("/home/test.sh", "/home/testfile.sh")
print sftp.stat("/home/testfile.sh")
print sftp.listdir("/home")
t.close
except Exception, e:
print str(e)
转载于:https://blog.51cto.com/wjpingok/1737178