使用Paramiko实现SSH登陆,文件上传下载

1,SSh登陆命令行实现:

#!/usr/bin/env python
# encoding: utf-8
import paramiko

private_key_path = ‘/Users/aolens/.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.201‘, 22,username=‘root‘,pkey=key)
#ssh.connect(‘192.168.1.201‘, 22,‘root‘,‘aolens‘) #不采用迷药登陆时
flag = True
while flag:
    con = raw_input(‘输入要执行的命令: ‘)
if con == ‘quit‘:
        flag = False
ssh.close()
else:
        stdin, stdout, stderr = ssh.exec_command(con)
print stdout.read()
 
2,实现文件上传下载
t = paramiko.Transport((‘192.168.1.201‘,22))
t.connect(username=‘root‘,password=‘qixiang123‘)
sftp = paramiko.SFTPClient.from_transport(t)
#sftp.put(‘/Users/aolens/Downloads/1.sh‘,‘/root/1.sh‘)   #put上传文件到服务器,前边是上传文件地址,后边是上传后文件地址
sftp.get(‘/root/1.sh‘,‘/Users/aolens/Downloads/2.sh‘)    #get下载文件,前边是下载地址,后边是下载后存放地址
t.close()

结合SSH登陆,优化文件上传下载

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

import paramiko

private_key_path = ‘/Users/aolens/.ssh/id_rsa‘
key = paramiko.RSAKey.from_private_key_file(private_key_path)

t = paramiko.Transport((‘192.168.1.201‘,22))
t.connect(username=‘root‘,pkey=key)
sftp = paramiko.SFTPClient.from_transport(t)
flag = True
while flag:
    con = raw_input(‘输入要执行的命令: ‘)
if con == ‘quit‘:
        flag = False
t.close()
elif con == ‘put‘:
        com_add = raw_input(‘输入文件来源地址:‘)
        target_add = raw_input(‘输入文件存放地址:‘)
        sftp.put(com_add,target_add)
print ‘上传完成[=========================] 100%  ‘, "文件上传至:%s"% (target_add)
elif con == ‘get‘:
        com_add = raw_input(‘输入文件来源地址:‘)
        target_add = raw_input(‘输入文件存放地址:‘)
        sftp.get(com_add,target_add)
print ‘下载完成[=========================] 100%  ‘, "文件存放在:%s"% (target_add)

else:
print ‘输入正确的上传下载指令‘
print ‘上传: put ‘
print ‘下载: get ‘
print ‘=========================‘
对上边SSH登陆优化,输出信息
#!/usr/bin/env python
# encoding: utf-8
import paramiko

private_key_path = ‘/Users/aolens/.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.201‘, 22,username=‘root‘,pkey=key)
#ssh.connect(‘192.168.1.201‘, 22,‘root‘,‘aolens‘) #不采用迷药登陆时
flag = True
while flag:
    con = raw_input(‘\033[1;34m输入要执行的命令: \033[0m‘)
    if con == ‘quit‘:
        flag = False
        ssh.close()
    else:
        stdin, stdout, stderr = ssh.exec_command(con)
	for i in (stdout.read(),stderr.read()):
		print i
时间: 2024-08-02 02:41:49

使用Paramiko实现SSH登陆,文件上传下载的相关文章

ssh框架文件上传下载

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Author" content="BuNuo"> <meta name="Keywords" content="文件上传下载"> <meta name="

关于使用SecureCRT 实现 WIN7 与 Linux 双向通信的问题及文件上传下载

Linux 版本:Cent 6.5 X86 VMware workstation 10.0 win7 Ultimate x86 ,Linux 均可以正常链接网络[采用桥接方式] 遇到问题: win7 可以 ping 通linux及网关,linux不能ping通网关及win7,但能链接网络. 前提: 需要手动配置linux的IP为静态,WIN7的可以随意,但是一般在一个网段(不然配置较复杂了),保证可以正常通信访问. 解决: 通过手动改ip及相关配置的方法之后,仍然未能ping通,改链接方式为NA

java web 文件上传下载

文件上传下载案例: 首先是此案例工程的目录结构: 处理上传: FileUploadServlet.java 1 package fnz.fileUploadTest; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.PrintWriter; 7 import java.text.SimpleDateFormat; 8 import java.

文件上传下载—servlet API实现

servlet API实现文件上传下载需要的jar包: UploadServlet.java package com.ymw.web.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.UUID; import javax.servl

文件上传下载

1.文件上传 文件上传下载本质是通过Socket的字节流来传输数据的.所以,对于文件上传,我们可以从HttpRequest对象获取输入流,进而获取上传文件的内容.但是采用ServletAPI并不能获取获取对应文件的字节流,而是获取整个Socket的字节流,里面包括提交的参数.上传文件内容以及其他附加信息. Servlet API上传文件,代码如下 protected void doPost(HttpServletRequest request, HttpServletResponse respo

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项目地址:http://www.51aspx.com/code/MSDCArtMengFileUpload 咨询qq:286275658 演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 服务器端运行效果图: 服务器端配置文件: <?xml version="1.

开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载

OkHttpPlus介绍 项目地址:https://github.com/ZhaoKaiQiang/OkHttpPlus 主要功能:OkHttp封装,支持GET.POST.UI线程回调.JSON格式解析.链式调用.小文件上传下载及进度监听等功能 为什么要写这么一个库呢? 首先,是因为OkHttp在4.4之后已经作为底层的Http实现了,所以OkHttp这个库很强大,值得我们学习. 其次,在我看来,OkHttp使用起来不如Volley方便,OkHttp的回调都是在工作线程,所以如果在回调里面操作V

.Net Core 图片文件上传下载

当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. 一.开发环境 毋庸置疑,宇宙第一IDE VisualStudio 2017 二.项目结构 FilesController 文件上传下载控制器 PictureController 图片上传下载控制器 Return_Helper_DG 返回值帮助类 三.关键代码 1.首先我们来看Startup.cs