• Python使用paramiko库远程安全连接SSH


     1 #!/usr/bin/python
     2 #ssh
     3 import paramiko
     4 import sys,os
     5 
     6 host='127.0.0.1'
     7 user = 'whl'
     8 password = '123456'
     9 
    10 s = paramiko.SSHClient()                                 # 绑定实例
    11 s.load_system_host_keys()                                # 加载本地HOST主机文件
    12 s.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 允许连接不在know_hosts文件中的主机
    13 s.connect(host,22,user,password,timeout=5)               # 连接远程主机
    14 while True:
    15         cmd=raw_input('cmd:')
    16         stdin,stdout,stderr = s.exec_command(cmd)        # 执行命令
    17         cmd_result = stdout.read(),stderr.read()         # 读取命令结果
    18         for line in cmd_result:
    19                 print line
    20 # paramiko实例(账号密码登录执行命令)
     1 #!/usr/bin/evn python
     2 import os
     3 import paramiko
     4 host='127.0.0.1'
     5 port=22
     6 user = 'whl'
     7 password = '123456'
     8 ssh=paramiko.Transport((host,port))
     9 privatekeyfile = os.path.expanduser('~/.ssh/id_rsa') 
    10 mykey = paramiko.RSAKey.from_private_key_file( os.path.expanduser('~/.ssh/id_rsa'))   # 加载key 不使用key可不加
    11 ssh.connect(username=username,password=password)           # 连接远程主机
    12 # 使用key把 password=password 换成 pkey=mykey
    13 sftp=paramiko.SFTPClient.from_transport(ssh)               # SFTP使用Transport通道
    14 sftp.get('/etc/passwd','pwd1')                             # 下载 两端都要指定文件名
    15 sftp.put('pwd','/tmp/pwd')                                 # 上传
    16 sftp.close()
    17 ssh.close()
    18 # paramiko实例(传送文件)
     1 #!/usr/bin/python
     2 #ssh
     3 import paramiko
     4 import sys,os
     5 host='127.0.0.1'
     6 user = 'whl'
     7 s = paramiko.SSHClient()
     8 s.load_system_host_keys()
     9 s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    10 privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')             # 定义key路径
    11 mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
    12 # mykey=paramiko.DSSKey.from_private_key_file(privatekeyfile,password='061128')   # DSSKey方式 password是key的密码
    13 s.connect(host,22,user,pkey=mykey,timeout=5)
    14 cmd=raw_input('cmd:')
    15 stdin,stdout,stderr = s.exec_command(cmd)
    16 cmd_result = stdout.read(),stderr.read()
    17 for line in cmd_result:
    18         print line,
    19 s.close()
    19 # paramiko实例(密钥执行命令)
  • 相关阅读:
    extjs 小总结
    button 带有自动提交功能。
    跑马灯效果 extjs
    ExtJs之Ext.data.Store
    dojochina ext .rar
    后台得到extjs中gridpanel选中行的某个值
    关于JavaScript“跨域”问题的总结
    Eclipse+php插件+Xdebug搭建PHP完美开发/调试环境指南
    [修补 Patch] 重命名上传文件的解决办法
    容器Collection_2
  • 原文地址:https://www.cnblogs.com/lfoder/p/6666272.html
Copyright © 2020-2023  润新知