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. 阶段3 2.Spring_07.银行转账案例_10 使用动态代理实现事务控制

    回到事物的案例中 我们现在希望用代码比较精简的这个AccountServiceImpl这个类.而不是一堆事物的AccountServiceImpl_OLD这个类 新建BeanFactory类 Acco ...

  2. 2018.04.02 matplotlib 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签

    import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.r ...

  3. git 新建项目提交本地项目代码

    git init git remote add origin ssh://git@42.123.127.93:10022/tyshawn/sdap1.git git add . git commit ...

  4. 自己实现一个list比较器 实现Comparator()接口

    一:一个实体类 成员变量有名字,年龄,分数 )))))); List<User> list = new ArrayList<>(); list.add(user1); list ...

  5. 【神经网络与深度学习】Caffe训练执行时爆出的Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type

    自己建立一个工程,希望调用libcaffe.lib ,各种配置好,也能成功编译,但是运行就会遇到报错 F0519 14:54:12.494139 14504 layer_factory.hpp:77] ...

  6. Visual Subst - 简单将任意文件夹挂载模拟成驱动器盘符硬盘分区的小工具

    随着电脑的使用,硬盘里的资料一天比一天多,也越来越杂乱.一些朋友为了方便文件管理,会考虑重新分区,让C.D.E等盘符分别担任不同的角色.不过,不分区的话也有一些小工具可以帮你实现. Visual Su ...

  7. mv 命令 移动或重命名文件

    mv 命令 移动或重命名文件 [root@localhost soft]# .txt [root@localhost soft]# [root@localhost soft]# ls .txt [ro ...

  8. Java第六周实验+总结

    一.实验目的 (1)掌握类的继承 1.子类继承父类中非private的成员变量和成员方法,同时,注意构造方法不能被子类继承. 2.定义类时若缺省extends关键字,则所定义的类为java.lang. ...

  9. HDU 1087 Super Jumping! Jumping! Jumping! (动态规划、最大上升子序列和)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  10. python 传址 与传值(暂时保存,后续做分类)

    # python 传址 与 传值 # 定义一个函数 用于将 list 下标为2的数据加100 并进行打印 该list def test1(list): list[2]+=100 print(list) ...