模块paramiko 介绍

paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。

#pip install paramiko

--------------------------------------------------------------------------------------------

SSHClient

用于连接远程服务器并执行基本命令

基于用户名密码连接:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import  paramiko
  
# 创建SSH对象
ssh  =  paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname = 'c1.salt.com' , port = 22 , username = 'wupeiqi' , password = '123' )
  
# 执行命令
stdin, stdout, stderr  =  ssh.exec_command( 'df' )
# 获取命令结果
result  =  stdout.read()
  
# 关闭连接
ssh.close()

基于公钥密钥连接:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import  paramiko
 
private_key  =  paramiko.RSAKey.from_private_key_file( '/home/auto/.ssh/id_rsa' )
 
# 创建SSH对象
ssh  =  paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname = 'c1.salt.com' , port = 22 , username = 'wupeiqi' , key = private_key)
 
# 执行命令
stdin, stdout, stderr  =  ssh.exec_command( 'df' )
# 获取命令结果
result  =  stdout.read()
 
# 关闭连接
ssh.close()



SFTPClient

用于连接远程服务器并执行上传下载

基于用户名密码上传下载

1
2
3
4
5
6
7
8
9
10
11
12
import  paramiko
 
transport  =  paramiko.Transport(( 'hostname' , 22 ))
transport.connect(username = 'wupeiqi' ,password = '123' )
 
sftp  =  paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py
sftp.put( '/tmp/location.py' '/tmp/test.py' )
# 将remove_path 下载到本地 local_path
sftp.get( 'remove_path' 'local_path' )
 
transport.close()

基于公钥密钥上传下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import  paramiko
 
private_key  =  paramiko.RSAKey.from_private_key_file( '/home/auto/.ssh/id_rsa' )
 
transport  =  paramiko.Transport(( 'hostname' 22 ))
transport.connect(username = 'wupeiqi' , pkey = private_key )
 
sftp  =  paramiko.SFTPClient.from_transport(transport)
# 将location.py 上传至服务器 /tmp/test.py
sftp.put( '/tmp/location.py' '/tmp/test.py' )
# 将remove_path 下载到本地 local_path
sftp.get( 'remove_path' 'local_path' )
 
transport.close()


































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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值