Python--Paramiko

一、 paramiko 安装

pip3 install paramiko

 

二、paramiko 核心组件

 

SSHClient 类

SSHClient类是服务回话的高级表示,该类封装了传输,通道,以及SFTPClient的校验,建立的方法

1 client = SSHClient()
2 client.load_system_host_keys()
3 client.connect(hostname,user,password)
4 stdin,stdout,stderr = client.exec_command("ls -l")

 

-- connect 方法

       connect方法实现了远程SSH连接并校验

       connect(self,hostname,username,port,password)

 

-- exec_command方法

  远程命令执行方法,该命令的输入和输出流为:标准输入,输出,错误输出

  exec_command(self,command,bufsize=-1)

    command(str类型):执行的命令串

    bufsize(int 类型):文件缓冲区大小,默认为1

 

-- load_system_host_keys

  加载本地公钥校验文件

  load_system_host_keys(self,filename=None)

 

-- set_missing_host_key_policy

  设置连接的远程主机没有本地主机秘钥和HostKeys对象时的策略,目前支持下面三种:

    AutoAddPolicy

      自动添加主机及主机秘钥到本地HostKey对象,并将其保存,不依赖 load_system_host_keys()的配置

    RejectPolicy

      自动拒绝未知的主机名和秘钥,依赖 load_system_host_keys 的配置

    WarningPolicy

      用于记录一个未知的主机秘钥的告警,并接受他

 

SSHClient示例:

1.实现秘钥方式登录远程主机

 1 #!/usr/bin/env python3
 2 import paramiko
 3 import os
 4 
 5 hostname='127.0.0.1'
 6 username='root'
 7 paramiko.util.log_to_file('syslogin.log')
 8 
 9 ssh=paramiko.SSHClient()
10 ssh.load_system_host_keys()
11 privatekey = os.path.expanduser('/root/.ssh/id_rsa')
12 key=paramiko.RSAKey.from_private_key_file(privatekey)
13 
14 ssh.connect(hostname=hostname,username=username,pkey=key)
15 stdin,stdout,stderr = ssh.exec_command('free -m')
16 print(stdout.read())
17 ssh.close()

2. 实现密码登录远程主机

 1 hostname = "127.0.0.1"
 2 user = "root"
 3 password = "root@123"
 4 paramiko.util.log_to_file("syslogin.log")
 5 ssh = paramiko.SSHClient  # creat a ss client object
 6 ssh.load_system_host_keys() # get client's host_keys
 7 ssh.connect(hostname=hostname,username=username,password=password) # create ssh connect
 8 print(ssh.exec_command("free -m"))
 9 stdin,stdout,stderr = ssh.exec_command("free -m")
10 print(stdout.read())
11 ssh.close()

 

转载于:https://www.cnblogs.com/mingtao-li/p/11435033.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值