背景:工作中遇到了一个问题,需要用到windows向windows连接(文件传发)以及,linux向windows连接(文件传发)的需求。

自然而然会考虑到用paramiko,然而paramiko我用的比较多的还是连接linux的操作,至于连接windows的操作没用过。在网上搜索一段时间后,发现网上的教程基本上没有。折腾一段时间后发现了winrm,winrm在命令发送比较简单,但是文件上传、下载,还是没有合适的路子(或者说适合自己的方法)。一番折腾后还是想自己研究一把paramiko。

问题1:在网上搜索方法的时候,发现别人可以直接用paramiko连接windows,并用psutil 获取cpu、内存等数据,代码和我们连接linux基本一样的,那么我也来试一下:

import paramiko
client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='***',port=22,username='Administrator',password='***')
client.close()

思考1:也可能是因为windows不支持ssh连接,那么我就试一下transaport:

scp=paramiko.Transport((IP,22))
scp.connect(username=username,password=password)
sftp=paramiko.SFTPClient.from_transport(scp)
scp.close()

依然遇到了同样的问题

思考2:既然别人可以,代码应该就没有问题,那么会是什么问题。网上搜索一番,发现可能和openssh有关系,接着下载openssh

问题2:按照下面的教程在目标window10 的机器上面安装了openssh之后,再次尝试了一把,但是还是遇到了“[WinError 10061] 由于目标计算机积极拒绝,无法连接。”
https://www.jianshu.com/p/6e5bc39d386e

思考3:会不会因为是22 端口没有开启导致的,于是乎查看端口情况发现端口是开的

思考4:会不会是因为防火墙的原因,关闭防火墙之后发现还是同样的问题,此时的心态已经接近崩溃

问题3:即使我们目标端的windows的机器安装了openssh但是我们还是不能连接上去:

思考5:继续尝试后发现我的目标windows的机器可以通过ssh连接到其他的机器上面,但是我却不能ssh到目标机器上面,这时候似乎明白了什么。查看服务发现ssh启动的只有sshd服务,此时我们把ssh的服务端和客户端都打开应该问题就解决了

ps:其实正在发现问题所在是我在用exe版安装openssh的时候发现了下面的选项,exe版安装是默认按照客户端和服务器端的,而我们源码安装应该只有客户端。

记一次paramiko远程连接遇到的坑的更多相关文章

  1. windows server服务器上mysql远程连接失败的坑

    windows server服务器上mysql远程连接失败的坑 背景:趁这阿里云活动,和朋友合伙买了个服务器,最坑的是没想到他买的是windows Server的,反正便宜,将就着用吧,自己装好了wa ...

  2. 记一次VNC远程连接Linux问题解决记录(5900端口测试、KDE桌面安装)

    最近几天,到一个项目上安装Linux部署环境.由于服务器在机房,而进机房又比较麻烦,于是选择VNC远程连接Linux就显得自然而然了.以前也用过VNC,而且还经常使用,由于各个项目环境不太一样,这次也 ...

  3. 阿里云轻量应用服务器——配置MySQL远程连接(踩坑,LAMP+CentOS)

    说在前面 本文讲解清晰,从0开始 如不能用Navicat等数据库软件远程登陆,请先检查:安全>防火墙中 是否添加了MYSQL的3306端口(ECS服务器请检查 安全组)如未添加,先点右上角“添加 ...

  4. paramiko远程连接linux服务器进行上传下载文件

    花了不少时间来研究paramiko中sftpclient的文件传输,一顿操作猛如虎,最后就一直卡在了路径报错问题,疯狂查阅资料借鉴大佬们的心得,还是搞不好,睡了个午觉醒来,仔细一看原来是指定路径的文件 ...

  5. 阿里云部署Redis服务器远程连接问题

    昨天在阿里云免费领了一个月的云服务器,就着最近学的SpringBoot,准备做一个SpringBoot与Redis的整合. 因为以前用的Redis都是安装在本地的,使用过程中没遇到什么大问题,可是一旦 ...

  6. python远程连接paramiko 模块和堡垒机实现

    paramiko使用 paramiko模块是基于python实现了SSH2远程安全连接,支持认证和密钥方式,可以实现远程连接.命令执行.文件传输.中间SSH代理功能 安装 pip install pa ...

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

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

  8. python中使用paramiko模块并实现远程连接服务器执行上传下载

    paramiko模块 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系 ...

  9. python paramiko模块:远程连接服务器

    1.  SFTP基于 用户名密码 登录服务器,实现上传下载: import paramiko transport = paramiko.Transport(()) # 生成trasport,配置主机名 ...

随机推荐

  1. .NET开发框架(四)-服务器IIS安装教程

    Windows Server 2012 R2 配置篇,包括服务器IIS安装.网络负载均衡器安装.ASP.NET Core 安装. 前三篇教程中,我们分享了框架的功能与视频演示介绍(文尾扫码 加入 框架 ...

  2. FireFox下Canvas使用图像合成绘制SVG的Bug

    本文适合适合对canvas绘制.图形学.前端可视化感兴趣的读者阅读. 楔子 所有的事情都会有一个起因.最近产品上需要做一个这样的功能:给一些图形进行染色处理.想想这还不是顺手拈来的事情,早就研究过图形 ...

  3. cocopods新建或者更新远端库主要操作步骤

    1.搭建远程仓库(私有或者公有项目): 2.使用sourceTree拉去远程仓库: 3.打开拉去的项目仓库Finder,构建pod lib项目:pod lib create AFNetworking( ...

  4. 浅入深出Vue:发布项目

    项目完成之后,当然不能满足于在我们的开发环境下跑一跑.我们可以打包发布到服务器上,让大家一起来欣赏一下你的作品. 那么 vue 项目如何打包发布呢,新建的项目目录下通常都有一个 README.md 的 ...

  5. Python 含小数的十、二进制相互转换

    ''' 二进制->十进制:bTod 整数部分:a乘以2的n次方(n:a后面的整数位数) 小数部分:a乘以2的-n次方(n:a是小数点后几位) 十进制->二进制dTob 整数部分:短除法(除 ...

  6. I/O:FileChannel

    FileChannel: abstract void force(boolean metaData) :强制将所有对此通道的文件更新写入包含该文件的存储设备中. abstract MappedByte ...

  7. EPPLUS 实现excel报表数据及公式填充

    年后工作第一天,根据客户要求修善EPPLUS报表. Epplus: Epplus是一个使用Open Office XML(Xlsx)文件格式,能读写Excel 2007/2010文件的开源组件 好处很 ...

  8. 简介SoftICE是Compuware NuMega公司1的产品,是目前公认最好的系统级调试工具

    简介SoftICE是Compuware NuMega公司1的产品,是目前公认最好的系统级调试工具

  9. ListView在ScrollView中不显示全部的问题

    在实际应用中,我们可能会遇到把ListView放到ScrollView中的情况,在这种情况下,ListView的滑动属性与ScrollView的滑动出现冲突,从而ListView只显示一项.这里提供一 ...

  10. SpringBoot集成beetl模板快速入门

    SpringBoot集成beetl模板快速入门 首次探索 beetl官方网址:http://ibeetl.com/ 创建SpringBoot工程(idea) 新建工程 选择创建Spring工程 书写包 ...