[TOC] 本篇前瞻学习完go语言基础的专栏,我们究竟写出怎么样的实用工具
学习完go语言基础的专栏,我们究竟写出怎么样的实用工具呢?我在github上开源的ssh连接管理器就是一个比较好的样例。
项目背景这个项目的背景是之前我在上班时连接生产机器时只能使用“ssh连接三剑客”——xshell,SecureCRT或者putty。而很久前我被告知xshell,SecureCRT不能再使用了,只能使用putty 。但是putty 又不能像xshell或SecureCRT一样去管理多个ssh终端机器,只能处理一个ssh终端机器,而且还不保存用户名密码。
于是为了保证使用方便和使用习惯的一致,才有了这个开源项目,我使用go语言做粘合剂去管理putty 和winscp去连接多个机器分别用于ssh终端管理和文件传输。现在这个项目呢能够和xshell或SecureCRT类似去管理多个ssh终端机器,而且非常贴合我们程序员喜欢使用命令行去操作机器的习惯。
(资料图)
ssh连接管理器ssh连接管理器是一个怎样的工具呢?事实上,如果你想要做个类比,我们可以把它理解成一个简单的XShell。XShell是一个强大的ssh客户端,能够同时连接多个支持ssh连接的机器的付费工具。
在实现方面,由于putty是一个开源且免费的ssh客户端工具,但是它没法保存多个连接的用户名密码,winscp和filezilla都是一个免费的sftp客户端工具。ssh连接管理器将这三个工具进行了串联,通过putty建立ssh连接进行远程控制,而通过winscp或filezilla建立sftp连接进行文件传输。ssh连接管理器是用智能命令行和我们进行交互的。
优点使用putty 进行ssh登录任一支持ssh的机器使用winscp 或者filezilla进行上传或下载文件使用命令行智能交互界面,使得程序员无需记住相关命令能够管理putty , winscp 或者filezilla的多个机器的连接信息使用putty , winscp 或者filezilla进行免密登录使用国密加密保存用户名和密码的文件,密匙为登录密码使用方式下载ssh-mgr的windows64位发布版本,注意其最小版本为windows 7 64位或者windows server 2008 64位
配置{ "ssh": "C:\\Program Files\\PuTTY\\putty.exe", "sftp": "C:\\Program Files (x86)\\WinSCP\\WinSCP.exe", "source":"C:\\Linux\\ssh", "isEncrypted":true, "password":"C:\\Linux\\passwd"}
ssh 用于配置putty程序的路径sftp 用于配置 winscp 或者filezilla程序的路径source 用于配置存储ssh连接信息的路径isEncrypted 是否加密ssh连接信息的路径password 用于存储密码信息,用于加密登录使用方法Usage of mgr: -c string config file (default "config.json")
快速开始在isEncrypted为ture时,开始需要输入密码,如果之前没有输入密码则会输入两次确认密码使用下面的命令就可以进行ssh连接或者sftp连接,group是将ssh连接分组起的名称,而name是sh连接的别名ssh group name #启动putty进行ssh连接sftp group name #启动 winscp 或者filezilla进行sftp连接add group name #新增一个ssh连接信息showAddr address #显示ip:port相关的ssh连接信息show group name #显示对应分组1的ssh连接信息exit #退出程序
在打印对应的命令时会有对应的提醒,如下所示:> ss ssh ssh group name
另外,它提示出对应的提醒,可以使用tab键后上下选择> ssh t test test test1 test1
新增ssh连接信息,输入add group name后#没有端口会默认为22,如果输入1.1.1.1:1234please input ssh address:1.1.1.1 please input ssh user:rootplease input ssh password:*******
注意点本工具虽然加密相关文件,但是在使用时,windows的任务管理器仍然会泄露shh的用户名和密码,为此在使用时确保只有一人在使用电脑。
使用样例点击下面的图片可以看到视频,就是如何使用命令行进行ssh终端管理和文件传输。
从上面的视频,你不难看到ssh连接管理器可以以相当智能的命令行形式与程序员交互,这些功能已经相当强大。
如果你在会goalng的基础上,还会vue以及js等前端技术,那么你也能给这个工具展示一个相对完美的界面,这里挖个坑,后面有空去填一下,go语言事实上能够和js完美结合成为一个windows应用。
本篇后记讲完这个项目,我看了这个项目初次提交的日期,居然已经是1年半之前,有点感叹时间过得真快。学习go语言也不知不觉已经到了第七个年头,而go语言也以其快速简单的开发悄悄地融入我的工作之中,让我们一起学习这个强大,简单而且易学的工具——go语言。
[TOC] 本篇前瞻学习完go语言基础的专栏,我们究竟写出怎么样的实用工具
文 图羊城晚报全媒体记者何晶“C919拥有完全的自主知识产权不容任何置
近日,亚辉龙披露的2023年半年报显示,公司今年上半年实现营收10 75亿
近日,西安市公安局碑林分局兴庆路派出所接到110报警,称在火炬路东高
据报道,22日,天津新天地大厦外墙起火,消防人员到场明火已基本扑灭。