zoukankan      html  css  js  c++  java
  • day9---paramiko ssh ftp

    安装 paramiko模块

    win下:

    进入到Python35Scripts>

    执行:pip install paramiko

    Linux:

    先升级下pip :

    pip3.5 install --upgrade pip

    然后安装paramiko

    pip3.5 install paramiko

    Downloading paramiko-2.0.2-py2.py3-none-any.whl
    
    Downloading cryptography-1.5.tar.gz
    
    Downloading pyasn1-0.1.9-py2.py3-none-any.whl
    
    Downloading idna-2.1-py2.py3-none-any.whl
    
    Downloading six-1.10.0-py2.py3-none-any.whl
    
    Downloading cffi-1.8.3.tar.gz 
    
    Downloading pycparser-2.14.tar.gz
    
    Downloading cffi-1.8.3-cp35-cp35m-manylinux1_x86_64.whl
    >>> import paramiko
    >>> 
    代表成功

    paramiko实现ssh、scp

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

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    # Author:DCC
    
    import paramiko
    
    # 创建SSH对象
    ssh = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname='192.168.193.128', port=22, username='root', password='123dc.')
    # 执行命令
    stdin, stdout, stderr = ssh.exec_command('df')
    # 获取命令结果
    #result = stdout.read()
    res,err = stdout.read(),stderr.read()
    #print(result.decode())
    print(res.decode())
    print(err.decode())
    # 关闭连接
    ssh.close()
    
    #执行结果
    C:Userscongcong.duAppDataLocalProgramsPythonPython35python.exe C:/Users/congcong.du/PycharmProjects/test/day9/paramiko_test/ssh_test.py
    Filesystem           1K-blocks    Used Available Use% Mounted on
    /dev/mapper/VolGroup-lv_root
                           8649736 8152208     51476 100% /
    tmpfs                   502068       0    502068   0% /dev/shm
    /dev/sda1               487652  128958    333094  28% /boot

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

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    # Author:DCC
    
    import paramiko
    
    transport = paramiko.Transport(('localhost', 22))
    transport.connect(username='root', password='123dc.')
    
    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()

    基于公钥密钥连接

    服务器无密码验证

    &&&&&&&&&&&&&&
    #ssh-keygen -t rsa 
    连着三个回车
    #ssh-copy-id -i root@119.40.36.231 
    输入密码,回车。
    哦了。
    &&&&&&&&&&&&&&

    基于公钥链接

    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()

    基于公钥ftp

    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()
  • 相关阅读:
    【BZOJ2599】[IOI2011]Race 树的点分治
    【BZOJ1787】[Ahoi2008]Meet 紧急集合 LCA
    【BZOJ1834】[ZJOI2010]network 网络扩容 最大流+最小费用流
    【BZOJ3012】[Usaco2012 Dec]First! Trie树+拓补排序
    【BZOJ2743】[HEOI2012]采花 离线+树状数组
    【BZOJ2946】[Poi2000]公共串 后缀数组+二分
    【BZOJ2157】旅游 树链剖分+线段树
    【BZOJ2661】[BeiJing wc2012]连连看 最大费用流
    【BZOJ1801】[Ahoi2009]chess 中国象棋 DP
    【BZOJ4236】JOIOJI STL
  • 原文地址:https://www.cnblogs.com/dcc001/p/5882757.html
Copyright © 2011-2022 走看看