1.  SFTP基于 用户名密码 登录服务器,实现上传下载:

import paramiko

transport = paramiko.Transport(('hostname', ))   # 生成trasport,配置主机名,端口
transport.connect(username='root',password='****') # 登录名、密码 sftp = paramiko.SFTPClient.from_transport(transport)
# 将id_rsa 上传至服务器并重命名 /tmp/test.py
sftp.put('id_rsa', '/tmp/ras.py')
# ras.py 下载到本地 ras.py
sftp.get('/tmp/ras.py', 'ras.py')
# 关闭连接
transport.close()

2. SFTP基于 密钥 登录服务器

import paramiko

private_key = paramiko.RSAKey.from_private_key_file('id_rsa') # id_rsa是本地的私钥,需要在服务器上配制公钥

transport = paramiko.Transport(('hostname', 22))   # 配置主机名和端口
transport.connect(username='root', pkey=private_key) # 连接root用户,使用密钥 sftp = paramiko.SFTPClient.from_transport(transport)
# 将local.py 上传至服务器 /tmp/test.py
sftp.put('/tmp/local.py', '/tmp/test.py')
# test.py 下载到本地 local.py
sftp.get('test.py', 'local.py')

3. SSH基于 密钥 登录服务器

import paramiko

private_key = paramiko.RSAKey.from_private_key_file('id_rsa')

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不存在在know_hosts文件里的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='hostname', port=22, username='root',pkey=private_key) # 执行命令
stdin,stdout,stderr = ssh.exec_command('ls')
result = stdout.read()
print(result) # 关闭连接
ssh.close()

4. SSH 封装 Transport 基于 密钥 登录服务器

import paramiko

private_key = paramiko.RSAKey.from_private_key_file('id_rsa') # id_rsa是本地私钥,需要服务器配置公钥
transport = paramiko.Transport(('hostname', 22))
transport.connect(username='root',pkey=private_key)
# 创建SSH对象
ssh = paramiko.SSHClient()
ssh._transport = transport
# 执行命令
stdin,stdout,stderr = ssh.exec_command('ls')
result = stdout.read()
print(result) # 关闭连接
transport.close()

5. SSH 基于 用户名密码 登录服务器

# SSHClient 基于用户名和密码连接服务器
import paramiko # 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='hostname', port=22, username='root', password='****') # 执行命令
stdin, stdout, stderr = ssh.exec_command('ls')
# 获取命令结果
result1 = stdout.read()
result2 = stderr.read()
print(result1,result2,sep='\n')
# 关闭连接
ssh.close() print(f'{"SSH封装Transport":=^50}') # SSHClient 封装 Transport,基于用户名和密码连接服务器 import paramiko transport = paramiko.Transport(('hostname', 22))
transport.connect(username='root', password='****') ssh = paramiko.SSHClient()
ssh._transport = transport stdin, stdout, stderr = ssh.exec_command('ls')
print (stdout.read()) transport.close()

python paramiko模块:远程连接服务器的更多相关文章

  1. paramiko模块(远程操作服务器)

    paramiko模块(远程操作服务器) django+paramkio实现远程某些服务器执行命令+上传文件 用于帮助开发者通过代码远程连接服务器,并对服务器进行操作. pip3 install par ...

  2. 利用Paramiko模块远程连接Linux

    使用Paramiko模块模拟SSH远程连接到服务器,并执行命令.(支持Tab键补全) 1.安装相关模块: 1)安装 Crypto 模块: 下载源码包解压 安装: sudo python setup.p ...

  3. python Paramiko 模块远程管理主机

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- import paramiko import os, stat import sys import ope ...

  4. Python Paramiko模块

    代码来自:http://www.cnblogs.com/wupeiqi/articles/4356675.html 今天学到了一个运维方面的利器:python的paramiko模块. paramiko ...

  5. Python Paramiko模块与MySQL数据库操作

    Paramiko模块批量管理:通过调用ssh协议进行远程机器的批量命令执行. 要使用paramiko模块那就必须先安装这个第三方模块,仅需要在本地上安装相应的软件(python以及PyCrypto), ...

  6. python paramiko模块学习分享

    python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...

  7. Windows下pycharm远程连接服务器调试-tensorflow无法加载问题

    最近打算在win系统下使用pycharm开发程序,并远程连接服务器调试程序,其中在import tensorflow时报错如图所示(在远程服务器中执行程序正常): 直观错误为: ImportError ...

  8. Atom远程连接服务器报错服务器版本和客户端版本不一致

    Atom远程连接服务器 报错信息: Server version is different than client version Original error message: Version mi ...

  9. PUTTY无法远程连接服务器故障解决[转]

    对于一个刚刚了解putty工具的新手来说,在putty工具使用中有时出现了问题而无法解决.今天就来介绍怎么解决putty无法远程连接服务器的故障. 用putty远程连接服务器时,提示错误 server ...

  10. PyCharm 如何远程连接服务器编写程序

    写在前面 我之前一直通过mstsc远程服务器桌面修改代码,或者本地修改后上传到远程服务器等,各种不爽,现在改用xshell,但有时候还是感觉不方便.于是乎,自己动手配置PyCharm远程连接服务器,这 ...

随机推荐

  1. Anaconda 32在windows下安装gensim

    安装Anaconda 2.4以后运行corpora.MmCorpus.serialize的时候出错 换了Anaconda 2.1以后没问题了 原因:Anaconda 2.4的numpy是1.10.1版 ...

  2. css(float浮动和clear清除)

    教程开始: 首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流.如下图: 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1 ...

  3. Flume HA

    flume提供fail over和load balance功能 1.添加collector配置(配置两个collector) # Name the components on this agents1 ...

  4. 在Spring容器外调用bean

    这个东西源于这种需求:一个应用丢到服务其后,不管用户有没有访问项目,这个后台线程都必须给我跑,而且这个线程还调用了Spring注入的bean,这样自然就会想到去监听Servlet的状态,当Servle ...

  5. Websocket --(2)实现

    首先声明,本篇博文参考文章 https://blog.csdn.net/jack_eusong/article/details/79064081 主要在于理解和自己动手搭建环境,自己搭建的过程中会发生 ...

  6. 洛谷 P5239 回忆京都 题解

    题面 裸的杨辉三角前缀和,但----- 在求前缀和的时候有可能得到一个负数(由于取模的原因),所以一定要加上模数后再取模!!!! #include <bits/stdc++.h> #def ...

  7. CF 1140B Good String

    Description You have a string ss of length nn consisting of only characters > and <. You may d ...

  8. MySQL总结(4)

    insert 数据的插入 INSERT插入数据

  9. zabbix 监控redis python3脚本

    一:安装redis-python模块 wge  thttps://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz tar xf r ...

  10. HDU-4717 The Moving Points(凸函数求极值)

    The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...