• python


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

    1、安装paramiko

    pip3 install paramiko

    2、paramiko使用:

      在使用paramiko之前需要先导入该模块。

     (1)paramiko基于密码连接服务器

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 
     4 '''基于用户名密码验证的连接'''
     5 import paramiko
     6 
     7 #创建SSH对象
     8 ssh = paramiko.SSHClient()
     9 
    10 #允许连接不在know_hosts文件中的主机(默认不在know_Hosts中的主机连接时,服务器有个yes确定,这里用这个就是应对点击yes)
    11 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    12 
    13 #连接服务器
    14 ssh.connect(hostname='192.168.22.132', port=22, username='test', password='123456')
    15 
    16 while True:
    17     cmd = input('>>:').strip()
    18     if not cmd: continue
    19     if cmd == 'q':break
    20     #执行命令
    21     stdin, stdout, stderr = ssh.exec_command(cmd)
    22 
    23     #获取命令结果
    24     result = list(filter(lambda x:x is not None,[stdout.read(),stderr.read()]))[0].decode('utf8')
    25     if not result:
    26         print(stderr.read().decode('utf8'))
    27     else:
    28         print(result)
    29 
    30 #关闭连接
    31 ssh.close()

     (2)paramiko基于密码的ftp

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 
     4 import paramiko
     5 
     6 transport = paramiko.Transport(('192.168.22.132', 22))
     7 transport.connect(username='test', password='123456')
     8 
     9 sftp = paramiko.SFTPClient.from_transport(transport)
    10 
    11 #将local.py上传到服务器/home/test/test.py
    12 sftp.put('local.py', '/home/test/test.py')
    13 
    14 #将remote_path.py 下载到本地local_path.py
    15 sftp.get('remote_path.py', 'local_path.py')
    16 
    17 transport.close()

      (3)paramiko基于key文件连接服务器

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 
     4 import paramiko
     5 
     6 private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.shh/id_rsa')
     7 
     8 #创建SSH对象
     9 ssh = paramiko.SSHClient()
    10 
    11 #允许连接不在know_hosts文件中的主机(第一次连接时存在的问题)
    12 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    13 
    14 #连接服务器
    15 ssh.connect(hostname='192.168.22.132', port=22, username='test', key=private_key)
    16 
    17 #执行命令
    18 stdin, stdout, stderr = ssh.exec_command('df')
    19 
    20 #获取执行结果
    21 result = filter(lambda x: x is not None,[stdout.read(),stderr.read()]).decode('utf8')
    22 if not result:
    23     print(stderr.read().decode('utf8'))
    24 else:
    25     print(result)
    26 
    27 ssh.close()
  • 相关阅读:
    window下上传文件至linux(windows下如何访问linux)
    32位除法器的verilog语言实现
    socket编程——TCP数据传输的可靠与稳定性
    socket编程——TCP连接与断开
    C踩坑纪实——(一)
    CMAKE工具学习
    排序算法优化思考
    MQTT抓包分析
    C结构体与链表
    第二次作业
  • 原文地址:https://www.cnblogs.com/xtsec/p/6985709.html
Copyright © 2020-2023  润新知