• python模块----paramicko模块 (ssh远程主机并命令或传文件)


    paramiko模块

    • paramicko模块是非标准库模块,需要pip下载
    • paramicko:模拟ssh登陆linux主机,也有上传下载功能。ansible自动化部署软件底层就有应用paramicko模块

    第一步:pip 下载包

    pip install paramiko
    

    ssh 连接linux主机运行bash命令

    import paramiko
    hostname = '192.168.137.3'
    port = 22
    username = 'root'
    password = '123'
    ssh = paramiko.SSHClient()
    # 自动添加策略,保存服务器的主机名和密钥信息,如果不添加,那么不再本地know_hosts文件中记录的主机将无法连接
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=hostname,port=port,username=username,password=password)
    stdin,stdout,stderr = ssh.exec_command("可用命令")
    print(stdout.read().decode('utf-8'))
    

    通过paramiko模块连接主机上传

    import paramiko
    hostname = '192.168.137.3'
    port = 22 
    username = 'root'
    password = '123'
    t=paramiko.Transport((hostname,port))
    t.connect(username=username,password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    sftp.put(r'/root/ping.sh', '/root/ping.sh')  #不同于scp必须为要传输的文件重新赋名
    t.close()
    
    

    通过paramiko模块连接主机下载

    import paramiko
    hostname =  '192.168.137.3'
    port = 22
    username = 'root'
    password = '123'
    t=paramiko.Transport((hostname,port))
    t.connect(username=username,password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    sftp.get('/root/test3.yml', r'C:Users51963Desktop	est3.yml')
    t.close()
    
    

    基于公钥上传下载

    import paramiko
    
    private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa') 
    
    transport = paramiko.Transport(('192.168.1.21', 22))
    transport.connect(username='root', 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()
    
  • 相关阅读:
    Win7下使用TortoiseGit设置保存密码
    MacOS软件清单
    ubuntu安装python
    Mac使用SSH连接远程服务器
    CentOS常用命令
    Docker追加容器端口映射
    Docker安装CentOS7
    Windows操作路由表
    Docker部署MySQL8并实现远程连接
    Qt——容器类(译)
  • 原文地址:https://www.cnblogs.com/du-z/p/12836576.html
Copyright © 2020-2023  润新知