[分享创造] 写了一个基于命令行的 SSH 客户端——knot
zbatman
·
2026-04-27
·
via 分享创造
knot 是一个命令行 SSH/SFTP 管理工具。 我做它的想法很简单:现代终端已经足够好用了,Windows Terminal 、Ghostty 、Kitty 这类终端在显示效果、快捷键、标签页、甚至 GPU 渲染上都做得不错。 但纯终端软件往往不带 SSH 连接管理功能,而直接用原生 ssh 命令又会有一些不太顺手的地方:服务器多了以后,凭据和密钥口令不好管理,代理和跳板机参数难记,传文件、端口转发又要切换不同命令和用法。 Knot 想做的是“连接体验”: 继续使用任何你喜欢的现代终端,同时用简单命令完成复杂的 SSH 连接配置。 安装 Linux / macOS: curl -fsSL https://knot.clay.li/i/install.sh | sh Windows PowerShell: irm https://knot.clay.li/i/install.ps1 | iex Shell 补全 Knot 内置了对 Bash 、Zsh 、Fish 和 PowerShell 的补全支持。 Bash # 当前会话立即启用 source <(knot completion bash) # 为当前用户永久启用 mkdir -p ~/.local/share/bash-completion/completions && knot completion bash > ~/.local/share/bash-completion/completions/knot 请确认系统已安装并加载 bash-completion 。 Zsh # 当前会话立即启用 autoload -U compinit && compinit && source <(knot completion zsh) # 为当前用户永久启用 mkdir -p ~/.zfunc && knot completion zsh > ~/.zfunc/_knot && grep -qxF 'fpath=("$HOME/.zfunc" $fpath)' ~/.zshrc || printf '\nfpath=("$HOME/.zfunc" $fpath)\nautoload -U compinit && compinit\n' >> ~/.zshrc Fish # 当前会话立即启用 knot completion fish | source # 为当前用户永久启用 mkdir -p ~/.config/fish/completions && knot completion fish > ~/.config/fish/completions/knot.fish PowerShell # 当前会话立即启用 knot completion powershell | Out-String | Invoke-Expression # 为当前用户永久启用 if (!(Test-Path $PROFILE)) { New-Item -ItemType File -Force $PROFILE | Out-Null }; if (-not (Select-String -Path $PROFILE -SimpleMatch 'knot completion powershell | Out-String | Invoke-Expression' -Quiet -ErrorAction SilentlyContinue)) { Add-Content -Path $PROFILE -Value "`nknot completion powershell | Out-String | Invoke-Expression" } 另外一些“顺手”的功能 连接复用 :后台 daemon 维护 SSH 物理连接,后续打开新 shell 、执行命令或传文件时可以复用已有连接,减少重复握手、认证。 SSH Agent 认证支持 :可以使用系统里的 SSH Agent ,支持 1Password 、Bitwarden 等。 Agent 转发支持 :连接到远程服务器后,也可以继续使用本机 Agent 做后续认证。 平台原生加密 :密码、密钥口令等敏感信息会加密保存,优先使用 Windows DPAPI 、macOS Keychain 、Linux Secret Service 等平台能力。 文件传输 : knot cp ./dist/. myserver:/var/www/html/ ,Docker 风格的 alias:/path 语法, /. 后缀表示拷贝目录内容而非目录本身。 AI 友好 :部分命令支持结构化输出和非交互用法,适合脚本、CI 或 AI 编码助手调用。 项目地址: https://github.com/2cydg/knot 官网还在开发中。README 中只列出了部分命令,可执行 knot --help 来查看完整命令列表。 knot 还在早期阶段,如果你感兴趣,欢迎试试看,也欢迎提 Issue 或参与改进。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。