前期准备工作

前期准备

提示:windows环境,python编辑器,代码基础是必备的


前言

突然想有一个自己的SSH工具,一顿百度+文心一言就有了信心,虽然做不出XShell,finalshell这种高难度的产品,但是打造一款属于自己的简单SSH应对日常工作需求好像是有能力的,为了不让自己懈怠,决定将每一步都发布出去来鞭策自己


一、Paramiko

Paramiko是Python中最流行和最广泛使用的SSH库。它提供了客户端和服务器功能,因此可以使用它连接到远程SSH服务器,甚至在Python中启动自己的SSH服务器

Paramiko提供了我认为的SSH四大基础功能:

  • 建立SSH连接:Paramiko可以通过IP和端口号建立与远程SSH服务器的连接。
  • 用户认证:它支持多种用户认证方式,包括口令认证和公钥认证。通过使用密钥对象,可以完成SSH公钥认证
  • 执行远程命令:Paramiko可以通过SSH连接执行远程命令,类似于Linux的ssh命令。这是通过封装SSH会话和通道实现的。
  • 文件传输:它还支持文件传输功能,可以在本地和远程服务器之间安全地传输文件

因此我打算采用Paramiko做SSH工具底层功能的实现

二、PyQt6

SSH工具可视化是最必不可缺的,一般而言有两种可视化方法,一是用python的GUI库,二是用Web技术或其他语言写界面
对于我这种新手小白,用Web技术虽然方便,但是无法保证请求的安全性,因此选用python的GUI库

我打算选用PyQt6
PyQt6是一个用于创建图形用户界面(GUI)的Python库,提供了丰富的控件和布局方式,可以设计出美观、直观的用户界面,具有良好的跨平台性,可以在Windows、Linux、MacOS等操作系统上运行,从而满足不同设备的需求,有着丰富的学习资源和活跃的社区支持。

三、通信机制

为了增强可读性和可扩展性,需要模块化处理,将界面和SSH实现各自作为独立模块,这样就需要两者进行通信,通信机制的选择尤为重要

考虑到安全因素,界面将数据加密后用pyqt6槽函数发数据给通信模块,通信模块再转发到SSH模块处理。
鉴于安全性,通信模块不采用网络通信,仅用本地通信,在权衡利弊后打算选用socket通信。

四、加解密机制

SSH连接有一套SSH协议的认证机制,因此我们只需要考虑界面传输给SSH和SSH反馈数据传输给界面时的数据安全性,明文不太安全,因此需要加解密操作
加解密算法很多,而且实现难度都不低,因此还未想好自己处理加解密,暂时先不考虑加解密

总结

开始的第一天,先想想技术栈,用那些库,需要准备什么?学习什么?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值