Skip to content

A minimal SSH client designed especially for headless usages

License

Notifications You must be signed in to change notification settings

nekops-app/pipessh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0c9a54d · Apr 26, 2025

History

36 Commits
Apr 6, 2025
Apr 6, 2025
Apr 7, 2025
Apr 26, 2025
Apr 7, 2025
Apr 9, 2025
Apr 9, 2025
Apr 8, 2025
Apr 7, 2025
Apr 9, 2025
Apr 9, 2025
Apr 26, 2025
Apr 9, 2025
Apr 7, 2025
Apr 7, 2025
Apr 9, 2025
Apr 9, 2025
Apr 26, 2025
Apr 9, 2025
Apr 6, 2025
Apr 6, 2025
Apr 7, 2025

Repository files navigation

关于

这是一个为了 Nekops 定制的嵌入式 SSH 客户端,带有一些传统 SSH 客户端不支持的功能。

请注意,为了实现交互执行了一些特殊处理,这个客户端并不适合作为直接交互使用(即使或许可以)。如果您有使用 SSH 的需求,请使用 OpenSSH 。

事件 (暂定)

每个事件由 \x02 字符起始, \x03 字符结束。

如果事件拥有载荷,那么会以 \x1f 字符作为分割,前半部分为事件名(纯文本字符串),后半部分为事件载荷(JSON 格式的字符串)。

当前的事件列表如下:

事件 事件名 是否拥有载荷 载荷格式 含义
SSH 开始 sshStart - 预启动阶段结束,上下文(stdin/stdout/stderr)完全交给 SSH 会话
主机密钥 hostKey { h: string, s?: string[], o?: string, fp: string } 首次连接到某主机,或主机的密钥发生变化

具体的事件信息您也可以参阅 events.go 文件中的描述。

服务端公钥验证

由于 Windows 平台上的 known_hosts 文件使用 CRLF (\r\n) 换行,而 *nix 平台下的换行符为 LF (\n),为确保跨平台兼容性,这个客户端统一使用 LF 作为换行符。

为避免对您现有的 known_hosts 文件造成损害,这个客户端不再会读写您默认目录( ~/.ssh/ )下的 known_hosts 文件。

如果您需要启用服务器公钥验证功能,请使用 -o UserKnownHostsFile=... 选项指定 known_hosts 文件。如果您未指定该参数,则默认不会验证服务器公钥。

信息

与一般 SSH 不同的是,这个客户端加入了这些新的功能:

  1. 捕获 \e[8;{rows};{cols}t 格式的 ANSI 转义序列,用于提示远端服务器关于窗口大小的变更事件(经由 stdin 输入)

致谢

About

A minimal SSH client designed especially for headless usages

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages