zoukankan      html  css  js  c++  java
  • Python使用paramiko库远程安全连接SSH

    • paramiko实例(账号密码登录执行命令)

    #!/usr/bin/python

    #ssh
    import paramiko
    import sys,os

    host='127.0.0.1'
    user = 'whl'
    password = '123456'

    s = paramiko.SSHClient() # 绑定实例
    s.load_system_host_keys() # 加载本地HOST主机文件
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不在know_hosts文件中的主机
    s.connect(host,22,user,password,timeout=5) # 连接远程主机
    while True:
    cmd=raw_input('cmd:')
    stdin,stdout,stderr = s.exec_command(cmd) # 执行命令
    cmd_result = stdout.read(),stderr.read() # 读取命令结果
    for line in cmd_result:
    print line

    • paramiko实例(传送文件)

    #!/usr/bin/evn python
    import os
    import paramiko
    host='127.0.0.1'
    port=22
    user = 'whl'
    password = '123456'
    ssh=paramiko.Transport((host,port))
    privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')
    mykey = paramiko.RSAKey.from_private_key_file( os.path.expanduser('~/.ssh/id_rsa')) # 加载key 不使用key可不加
    ssh.connect(username=username,password=password) # 连接远程主机
    # 使用key把 password=password 换成 pkey=mykey
    sftp=paramiko.SFTPClient.from_transport(ssh) # SFTP使用Transport通道
    sftp.get('/etc/passwd','pwd1') # 下载 两端都要指定文件名
    sftp.put('pwd','/tmp/pwd') # 上传
    sftp.close()
    ssh.close()

    • paramiko实例(密钥执行命令)

    #!/usr/bin/python
    #ssh
    import paramiko
    import sys,os
    host='127.0.0.1'
    user = 'whl'
    s = paramiko.SSHClient()
    s.load_system_host_keys()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    privatekeyfile = os.path.expanduser('~/.ssh/id_rsa') # 定义key路径
    mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
    # mykey=paramiko.DSSKey.from_private_key_file(privatekeyfile,password='061128') # DSSKey方式 password是key的密码
    s.connect(host,22,user,pkey=mykey,timeout=5)
    cmd=raw_input('cmd:')
    stdin,stdout,stderr = s.exec_command(cmd)
    cmd_result = stdout.read(),stderr.read()
    for line in cmd_result:
    print line,
    s.close()

  • 相关阅读:
    四种PHP异步执行的常用方式
    PHP 多进程和多线程的优缺点
    试着用workerman开发一个在线聊天应用
    Python代码报错看不懂?记住这20个报错提示单词轻松解决bug
    PHP面试题大全(值得收藏)
    常见排序算法(三)
    常见排序算法(二)
    常见排序算法(一)
    NumPy 学习笔记(四)
    JavaScript 事件
  • 原文地址:https://www.cnblogs.com/yuanqc/p/10999033.html
Copyright © 2011-2022 走看看