python paramiko模块幸运飞艇平台搭建实现跨平台SSH

需求:在幸运飞艇平台搭建论坛:haozbbs.com Q1446595067 管理用户端(实际上所有支持Python的OS都可以)批量对远程服务器进行部署、命令执行、文件传输、搭建测试环境等。

一般的,我们用Putty,Xshell,Winscp都可以实现SSH登录,但是如果出现N台服务器,我们按照原来的方法,需要逐个登录配置,这会花费一定的时间。实际上,Python的paramiko模块就可以实现这种操作。其原理就是模拟SSH客户端,与SSH服务端进行交互,实现登录与命令的实时传输。
Paramiko安装

这里我使用了pip工具,也可以在网上下载包直接安装。

安装流程:

  1. 安装pycrypto: pip install python-dev
  2. 安装paramiko模块: pip install paramiko
    登录

一般的登录有两种方式,一种是通过用户名/密码,一种是通过密钥对,一般来说,通过密钥对的登录方式更为安全。
通过用户名/密码登录

#!/usr/bin/env python
#coding:utf-8

import paramiko

#实例化ssh
ssh = paramiko.SSHClient()
#在服务端签名,取消第一次登录出现的yes/no,其原理就是/home/$user/.ssh/known_hosts中加入该用户
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
#ip,端口号,用户名,密码
ssh.connect(‘l92.168.1.1‘,22,‘root‘,‘password‘)
#返回一个元组,包含正确/错误输出
stdin,stdout,stderr = ssh.exec_command(‘ifconfig‘)
print stdout.read()
#关闭ssh
ssh.close()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

通过密钥对登录
在服务端

ssh-keygen -t rsa #产生一个密钥对
ssh-copy-id -i ~/ssh/id_rsa.pub [email protected] #把公钥copy到用户下的~/.ssh/下

1
2

在客户端

#!/usr/bin/env python
#coding:utf-8

import paramiko

private_key_path = ‘/home/user/.ssh/id_rsa‘ #指定私钥位置
key = paramiko.RSAKey.from_private_key_file(private_key_path)

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(‘192.168.1.1‘,22, username=‘root‘,pkey=key) #这里就不需要密码了

stdin, stdout, stderr = ssh.exec_command(‘ifconfig‘)
print stdout.read()
ssh.close();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

文件传输

文件传输也可以包括通过用户名/密码来上传/下载文件,或是密钥对连接后上传/下载文件,我这里只单独用密钥对的方法,用户名/密码方法不再赘述。
文件上传

#!/usr/bin/env python
#coding:utf-8

import paramiko

pravie_key_path = ‘/home/user/.ssh/id_rsa‘
key = paramiko.RSAKey.from_private_key_file(pravie_key_path)

t = paramiko.Transport((‘192.168.1.1‘,22))
t.connect(username=‘root‘,pkey=key)

sftp = paramiko.SFTPClient.from_transport(t)
#前面的连接过程和上面都一样,只是这里用了sftp.put的方法实现上传
sftp.put(‘/tmp/test1.py‘,‘/tmp/test1.py‘)

t.close()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

文件下载

#!/usr/bin/env python
#coding:utf-8

import paramiko

pravie_key_path = ‘/home/user/.ssh/id_rsa‘
key = paramiko.RSAKey.from_private_key_file(pravie_key_path)

t = paramiko.Transport((‘192.168.1.1‘,22))
t.connect(username=‘root‘,pkey=key)

sftp = paramiko.SFTPClient.from_transport(t)
#文件的下载
sftp.get(‘/tmp/test1.py‘,‘/tmp/test2.py‘)

t.close()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

延伸

其实熟悉python的人都看出来了,paramiko和fabric模块非常相似,实际上,fabric就是在paramiko又加了一层封装。操作起来更方便而已,有兴趣的同学可以Google一下。

原文地址:http://blog.51cto.com/13856875/2137473

时间: 2024-10-09 01:21:02

python paramiko模块幸运飞艇平台搭建实现跨平台SSH的相关文章

Linux中用Nginx和FTP搭建WS幸运飞艇平台搭建图片服务器

一.需要的组件WS幸运飞艇平台搭建论坛:haozbbs.com Q1446595067 图片服务器两个服务:Nginx(图片访问): 1.http服务:可以使用nginx做静态资源服务器.也可以使用apache.推荐使用nginx,效率更高. 2.反向代理 实现 负载均衡ftp服务(图片上传): 使用linux做服务器,在linux中有个ftp组件vsftpd.二.Nginx服务器搭建1.安装Nginx 要求安装vmware虚拟机. Linux:CentOS6.4(32) Nginx:1.8.0

Python爬虫爬取OA幸运飞艇平台获取数据

安装BeautifulSoup以及requests 打开window 的cmd窗口输入命令pip install requests 执行安装,等待他安装完成就可以了 BeautifulSoup库也是同样的方法 我使用的编译器的是sublime text 3,觉得是挺好用的一个编译软件 其他工具: Chrome浏览器 Python版本: Python3.6 运行平台: Windows 1.首先我们搜索OA幸运飞艇平台排行榜:[×××.com/h5]企 娥:217 1793 408获取网页的代码:

机器学习实践心得:数据平台设计与搭建US幸运飞艇平台出租

机器学习作为近几年的一项热门技术US幸运飞艇平台出租QQ2952777280[话仙源码论坛]hxforum.com[木瓜源码论坛]papayabbs.com,不仅凭借众多"人工智能"产品而为人所熟知,更是从根本上增能了传统的互联网产品.下文将基于本人所负责的个推大数据平台搭建工作,与大家分享个推数据平台架构方面的经验以及踩过的一些坑. 一.背景:机器学习在个推业务中的应用场景作为独立的智能大数据服务商,个推主要业务包括开发者服务.精准营销服务和各垂直领域的大数据服务.而机器学习技术在多

Python Paramiko模块安装和使用

1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用paramiko可以很好的解决以上问题,比起前面的方法,它仅需要在本地上安装相应的软件(python以及PyCrypto),对远程服务器没有配置要求,对于连接多台服务器,进行复杂的连接操作特别有帮助. 2.安装 安装paramiko有两个先决条件,python和另外一个名为PyCrypto的模块. 通常安

Java的业务OA幸运飞艇平台出租逻辑验证架fluent-validator

在互联网OA幸运飞艇平台出租haozbbs.comQ1446595067 行业中,基于Java开发的业务类系统,不管是服务端还是客户端,业务逻辑代码的更新往往是非常频繁的,这源于功能的快速迭代特性.在一般公司内部,特别是使用Java web技术构建的平台中,不管是基于模块化还是服务化的,业务逻辑都会相对复杂. 这些系统之间.系统内部往往存在大量的API接口,这些接口一般都需要对入参(输入参数的简称)做校验,以保证:1) 核心业务逻辑能够顺利按照预期执行.2) 数据能够正常存取.3) 数据安全性.

利用padding-top/padding-bottom百分比OA幸运飞艇平台,进行占位和高度自适应

在css里面,padding-top,padding-bottom,margin-top,margin-bottom取值为百分比的时候,参照的是父元素的宽度. 比如:父元素宽度是100px, 子元素padding-top:50%,那么padding-top的实际值就是100*50%=50px 这个小小的知识点,其实有很大的用处,应用也很广泛,就是进行提前占位,避免资源加载时候的闪烁,还可以让高度自适应. 举例: 一般来说,想要自适应屏幕大小,我们设置元素的宽度自适应是完全没有问题的,比如希望一行

功能、界面/易用性幸运飞艇平台出租、中断、网络、兼容性、安全性、性能测试

功能测试幸运飞艇平台出租(www.1159880099.com)QQ11598800991.朋友圈发送功能 1)只发送文本 a.考虑文本长度:1-1500字符(该数据为百度数据).超出最大字符长度 b.考虑文本类型:纯中文.纯数字.纯字母.纯字符.纯表情(微信表情/手机自带表情).混合类型.包含url链接:因为过长纯类型需要换行很容易出现超出边框问题,所以这里先考虑过长纯类型情况 c.文本是否支持复制粘贴 d.为空验证 2)只发送图片 a.本地相册选择/拍摄 b.图片数量验证:1-9张图片.超出

MEF 插件幸运飞艇平台出租式开发 - DotNetCore 中强大的 DI

背景叙述在前面几篇幸运飞艇平台出租(www.1159880099.com)QQ1159880099 MEF 插件式开发 系列博客中,我分别在 DotNet Framework 和 DotNet Core 两种框架下实验了 MEF 的简单实验,由于 DotNet Framework 由来已久,因此基于该框架下衍生出的很多优秀的 MEF 框架较多.但是对于 DotNet Core 来说,情况有所不同,由于它本身对 DI 内置并提供支持,因此我尝试使用它的全新 依赖注入(DI) 来做一些实验. 动手实

DoTwe幸运28平台搭建下载en全解析(入门篇)

DoTween,Itw幸运28平台搭建下载[征途源码论坛zhengtuwl.com]联系方式:QQ:2747044651幸运28平台搭建下载een,这些名字作为一个Unity开发人员听起来并不陌生,它们在动画方面表现出了令人折服的能力,今天我带着大家来一起认识一下这款插件. [征途源码论坛zhengtuwl.com]联系方式:QQ:2747044651幸运28平台搭建下载 原文地址:http://blog.51cto.com/13978873/2177158