SSH客户端(Secure Shell)是一种用于使用SSH协议安全地连接到远程服务器或设备的工具。SSH是一种加密网络协议,可以在不安全网络的两个系统之间建立安全通信通道。
SSH客户端提供了一种安全的方式来访问和管理远程服务器或设备。通过对客户端和服务器之间的通信进行加密,确保密码或数据等敏感信息免受窃听或未经授权的访问。
所以SSH对于运维来说非常重要,目前XShell、SecureCRT在行业内被广泛使用,他们都是商业软件,当然也有免费版本。但本文主要要介绍的是一些比较出名的免费并且开源的SSH客户端工具。
1.KiTTY
https://github.com/cyd01/KiTTY
KiTTY是PuTTY 0.76版本的一个分支,PuTTY可能是世界上最好的telnet、SSH客户端,但KiTTY仅适用于Windows系统。
功能特性:
- 会话过滤器
- 便携性
- 预定义命令的快捷方式
- 会话启动器
- 自动登录脚本
- 带有RuTTY补丁的自动登录脚本
- URL超链接
- 为每个会话定义图标
- 发送到托盘
- 界面透明度
- 防止键盘意外输入
- 卷起
- 始终可见
- 快速启动重复会话
- 增强的配置框
- 自动保存
- 与IE集成的SSH处理程序
- 可以集成pscp.exe和WinSCP
- 支持二进制压缩
- 支持剪切板打印
- 支持Cygwin和Xbox.exe集成
- 文件关联
2.Tabby
https://github.com/Eugeny/tabby
Tabby 是一个功能丰富的终端模拟器和SSH客户端。它提供了友好的用户界面和广泛的功能,可用于远程访问、管理服务器或设备。
作为SSH客户端,Tabby允许用户使用SSH协议与远程系统建立安全的SSH连接。它为数据传输提供了强大的加密,确保了通信的机密性和完整性。
Tabby提供了一个SSH界面,支持用户同时打开多个SSH会话,从而可以轻松管理和切换不同的远程连接。它还支持各种SSH功能,例如:基于密钥的身份验证、端口转发、会话管理。
除了SSH之外,Tabby 还支持其他远程访问协议,如:以太网和串行连接等,为用户提供了一个多功能的工具集。
Tabby Terminal的设计具有高度可定制性,允许用户根据自己的喜好个性化其终端环境。它支持不同的配色方案,字体和布局,使用户能够创建一个舒适和视觉吸引力的工作环境。
功能特征:
- 集成的SSH和SSH客户端和连接管理器
- 集成串行终端
- 支持主题和配色方案
- 完全可配置的快捷键
- 拆分窗格
- 记忆标签
- 支持PowerShell(和PS Core)、WSL、Git-Bash、Cygwin、MSYS 2、Cmder和CMD
- 支持通过Zmodem从/到SSH会话的直接文件传输
- 支持完整的Unicode,包括双宽度字符
- 不会因快速输出而阻塞
- 支持Windows习惯的shell用户体验,包括Tab完成(通过Clink)
- 用于SSH加密和配置的集成加密容器
- 可作为SSH、SFTP和SSL的客户端私有化开发
3.File centipede
https://github.com/filecxx/FileCentipede
File centipede是一个多功能一体化的互联网文件上传、下载管理器,集成了BitTorrent客户端、WebDAV客户端、FTP客户端和SSH客户端。
具备快速、可定制和用户友好等特性。它支持多种协议,包含许多有用的辅助工具,如:HTTP请求程序、文件合并和编码器等。
通过集成到浏览器,可以从网站下载音频和视频,甚至加密视频。
4.Bastillion
https://github.com/bastillion-io/Bastillion
Bastillion是一个基于Web的SSH控制台。它结合了Web的管理与用户的SSH公钥管理。管理员可以管理公共SSH密钥,并通过web shell连接到系统。命令可以在shell之间共享,以简化修补程序并消除重复的命令执行。
Bastillion在SSH之上增加了TLS/SSL,并充当管理的堡垒主机。这确保了基础设施不会通过隧道或者端口暴露。
5.SSHJ
https://github.com/hierynomus/sshj
SSHJ不是一个完整的应用程序,而是一个Java库,用于管理Java应用程序的SSH,SCP和SFTP。
Maven如下:
<dependency>
<groupId>com.hierynomus</groupId>
<artifactId>sshj</artifactId>
<version>0.37.0</version>
</dependency>
6.Remmina
https://github.com/FreeRDP/Remmina
Remmina这是一个远程桌面客户端,支持的协议包括:RDP,VNC,SPICE,X2Go,SSH,WWW(HTTP协议)和EXEC网络。
主要功能有:
- 能够记住每个连接的上次视图模式
- 双击配置
- 缩放质量
- 自动滚动步长
- 最近项目的最大数量
- 按键配置
- 设置屏幕截图文件夹
- 设置屏幕截图文件名
- 防止屏幕截图进入剪贴板
- 配置分辨率
- 定期向Remmina开发人员发送使用统计信息(选择)
- 选项卡配置
- 配置工具栏
- 默认视图模式
- 全屏模式配置
- 主窗口中的搜索栏
- 支持托盘图标
- 支持深色托盘图标
- 解析~/.ssh/config
- SSH日志级别
- 终端字体
- 回滚线
- 默认配色方案
7.Golang SSH 客户端
https://github.com/melbahja/goph
这是一个基于Golang开发的轻量级SSH客户端程序。
主要功能特性包括:
- 易于使用和简单的API。
- 默认情况下支持已知主机。
- 支持使用密码连接。
- 支持使用私钥的连接。
- 支持使用带密码短语的受保护私钥进行连接。
- 支持从本地到远程上传文件。
- 支持从远程下载文件到本地。
- 支持与ssh代理的连接(仅限Unix系统)。
- 支持将新主机添加到known_hosts文件。
- 支持文件系统操作,如:Open, Create, Chmod...
- 支持上下文。命令取消的上下文。
8.SSB
https://github.com/pwnesia/ssb
ssb(Secure Shell Bruteforcer)是一种更快更简单的暴力SSH服务器的工具。
9.SSH-MITM
https://github.com/ssh-mitm/ssh-mitm
ssh man-in-the-middle(ssh-mitm)服务主要用于安全审计、支持公钥认证、会话劫持和文件操作。
SSH-MITM能够支持密码和公钥身份验证,能够检测用户是否能够在远程服务器上使用公钥身份验证登录。允许SSH-MITM接受与目标服务器相同的密钥。如果无法进行公钥身份验证,则身份验证将回退到密码身份验证。
当需要公钥身份验证的时候,就需要转发到一个代理登录到远程服务器。在没有代理被转发的情况下,SSH-MITM可以将会话重定向到蜜罐。
10.termscp
https://github.com/veeso/termscp
Termscp是一个功能丰富的终端文件传输和资源管理器,支持SCP、SFTP、S3。因此,支持远程服务器检索、上传文件、与本地文件系统进行交互等功能。它兼容Linux、MacOS、FreeBSD、NetBSD和Windows。
功能特征:
- 支持通信协议:SFTP,SCP,FTP,FTPS,S3和SMB。
- 可使用UI在远程和本地机器文件系统上进行探索和操作
- 可以创建、删除、重命名、搜索、查看和编辑文件
- 通过内置书签和最近的连接连接到您最喜欢的主机
- 使用您最喜爱的应用程序查看和编辑文件
- 使用SSH密钥和用户名/密码进行SFTP/SCP验证
- 兼容Windows、Linux、FreeBSD、NetBSD和MacOS
- 支持主题配置
- 自定义文件资源管理器格式
- 可自定义的文本编辑器
- 可定制的文件排序
- 当一个大文件被传输时,通过桌面通知获得通知
- 保持文件更改与远程主机同步
- 将密码保存在操作系统密钥库中
11.electerm
https://github.com/electerm/electerm
electerm是一个开源的ssh、telnet、serialport、sftp客户端程序,支持Linux、mac和windows系统。
12.ConnectBot
https://github.com/connectbot/connectbot
ConnectBot是一款适用于Android的安全Shell客户端,可让您通过加密安全连接到远程服务器。
13.WebSSH
https://github.com/huashengdun/webssh
WebSSH是一个简单的Web应用程序,可以作为ssh客户端连接到ssh服务器。它是用Python编写的,基于tornado,paramiko和xterm.js等框架。
功能特征:
- 支持SSH密码验证,包括空密码。
- 支持SSH公钥身份验证,包括DSA RSA ECDSA Ed25519密钥。
- 支持加密密钥。
- 支持双因素身份验证(基于时间的一次性密码)。
- 支持全屏终端。
- 可调整终端窗口大小。
- 自动检测ssh服务器的默认编码。
- 支持主流浏览器,包括:Chrome、Firefox、Safari、Edge、Opera
14.WebSSH2
https://github.com/billchurch/webssh2
WebSSH2是一个ssh2、socket.io、xterm.js和express的Web SSH客户端,是一个基于HTML5 Web的终端仿真器和SSH客户端的应用,通WebSocket/Socket.io连接服务端的SSH2客户端代理,再连接到SSH2服务器。