排行榜 统计
  • 文章总数:1688 篇
  • 评论总数:5 条
  • 分类总数:8 个
  • 最后更新:一天前

PYTHON使用PARAMIKO进行系统间通信遇到的坑

本文阅读 7 分钟
首页 常用工具 正文

记录自己在实现过程中遇到的坑。

实现目的

1、要求windows和linux可以互相通信,并传输文件
2、要求window和windows可以互相通信,并传输文件

环境

1、本地:win10企业版x64 ,python:3.8.7

2、linux服务端:ubuntu20.04 x64

3、windows服务端:win10专业版 x64

windows连接linux系统失败问题

windows连接linux系统失败,出现以下错误

在这里插入图片描述

排查流程

1、查看linux上是否ssh服务,打开终端,输入ssh,看是否有该命令功能:

在这里插入图片描述

2、如果没有的话进行安装,如果有进行下一步:

命令:sudo apt-get install openssh-server openssh-client

3、判断ssh配置文件里的端口是否为22:

命令:cat /etc/ssh/ssh_config

4、如果不是可以修改,如果是,查看端口22是否开通:

命令:netstat -ntl
在这里插入图片描述

5、若开通后连接还是提示:TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败;

6、可能是防火墙导致无法通信,查看防火墙是否关闭:

命令:sudo ufw status

7、可以看到防火墙是开始状态,关闭防火墙;

命令:sudo ufw disable

8、再进行连接即可连接成功。

设置重启系统防火墙服务不启动

1)查询服务自启动的列表

systemctl list-unit-files
在这里插入图片描述

2)关闭自启动服务

systemctl disable ufw.service

3)再次查看服务自启动列表如下

在这里插入图片描述

4)、重启系统验证,发现系统重启后防火墙还是关闭状态。

windows连接windows系统失败问题

为了保证代码的一致性,所以windows上也采用paramiko的方式进行连接。
windows连接Windows系统失败,出现以下错误:

在这里插入图片描述

排查流程

确保ssh先能通信成功。

1、安装ssh(本地和服务端都要安装)

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

2、安装后,通过命令(管理员权限)或服务中,都启动失败,提示“拒绝访问”;

在这里插入图片描述

3、最后进入到OpenSSH官网下载了一个新版本(下载的是V8.6.0.0p1-Beta最新的版本),然后重复上面的安装步骤,则服务可以启动;

在这里插入图片描述

如何设置为开机自启动

1)管理员权限启动终端,输入以下命令:

命令:sc config sshd start=auto

在这里插入图片描述

2)将ssh目录加入到环境变量中,重启终端,直接输入ssh就可以运行该服务。

4、使用ssh连接,提示:

ssh: connect to host [server_ip] port 22: Connection timed out
在这里插入图片描述

5、怀疑防火墙导致的,便尝试关闭试试

1)查看防火墙状态

netsh advfirewall show allprofiles

2)如若防火墙状态开启,则关闭windows上防火墙

netsh advfirewall set allprofiles state off

3)重新启动系统后,Windows防火墙将不再处于活动状态;

如果要再次启用防火墙,请使用以下命令:

netsh advfirewall set allprofiles state on

4)或者不关闭防火墙将sshd添加入站规则,并开放22号端口

命令:netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

6、关闭防火墙后,再次使用ssh连接提示以下错误

Connection reset by [server_ip] port 22
在这里插入图片描述

7、查看详细日志:ssh -vvv [用户名]@[server_ip]查看错误码:

send - WSASend() ERROR:10053, io:000001A133F02E60
在这里插入图片描述

8、查了很多资料说让改MTU(网络上传送的最大数据包,单位是字节),使用ping -f -l [字节] ip地址也没有问题。
此时心态已经快崩溃了。。。
偶尔在GitHub上看到一篇和我问题相似文章
在github上查到一个用户出现相同的问题,
9、尝试着将ssh的位置改一下;
将C:\Users\用户名(比如Administrator)\openssh\OpenSSH-Win64改为C:\Users\openssh\OpenSSH-Win64,然后将其加入到环境变量里,重新执行第一步操作安装启动sshd服务,再次相连发现成功了。。
(估计是这个ssh版本有问题)

10、使用ssh连接时,SSH2_MSG_SERVICE_ACCEPT received成功后出现10054的错误:

debug3: recv - from CB ERROR:10054, io:000001C51411FD40

基本上是用户名写错了,可以在终端输入命令“net user”,可以查看自己系统的用户名。

在这里插入图片描述

以上就是目前遇到的问题,整理一下,以防自己忘记。

最后的最后,来个小小的推荐

为了保护自己的代码,开始找一些工具,偶然搜到VirboxProtector工具,试用着发现还不错,所以推荐一下。

题外话

查询了很多家,貌似只有这一家支持对python脚本语言加密,听他们技术人员说这种直接对源码保护方式的安全性不是特别高,但是防小白还是可以的(虽然我自己也是小白)。其实我觉得有时候保护的目的不是为了安全性,比如我,更最主要的是不想直白的暴露自己的代码写的有多垃圾。。。

听他们技术人员说如果对安全性有要求的话,建议使用cython将源码文件转成pyd或so库,当成动态库以本地程序的方式保护,安全性会很高。
这个转换方式后再保护的方法,等我抽时间试试。。
————————————————
版权声明:本文为CSDN博主「CornerRose」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CornerRose/article/details/122738094

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://typecho.firshare.cn/archives/601.html
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。避免网络欺诈,本站不倡导任何交易行为。如您私自与本站转载自公开互联网中的资讯内容中提及到的个人或平台产生交易,则需自行承担后果。本站在注明来源的前提下推荐原文至此,仅作为优良公众、公开信息分享阅读,不进行商业发布、发表及从事营利性活动。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。
-- 展开阅读全文 --
Virbox Protector linux用法
« 上一篇 09-07
macOS上安装python3及paramiko
下一篇 » 09-07