Skip to content

VitaDynamics/lsh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lsh

lsh 是一个用 Zig 写的命令行 SSH 连接管理工具。它把常用 SSH 连接保存到本地配置文件里,然后通过编号快速连接。

功能

  • 管理多组 SSH 连接配置
  • 使用 lsh list 查看已配置的连接列表
  • 使用 lsh <number> 按编号连接服务器
  • 配置文件保存到用户目录,不依赖项目目录
  • 支持多平台打包脚本
  • 支持安装到当前用户的 ~/.local/bin

依赖

构建依赖:

  • Zig 0.16.0 或更高版本

运行依赖:

  • ssh
  • sshpass

lsh 使用系统 ssh 发起连接。由于系统 ssh 不支持直接通过普通参数传入密码,所以密码连接依赖 sshpass

安装

从源码安装到当前用户目录:

bash scripts/install.sh

默认安装到:

~/.local/bin/lsh

如果 ~/.local/bin 不在 PATH 中,可以把下面内容加入 shell 配置文件:

export PATH="$HOME/.local/bin:$PATH"

验证安装:

lsh help

安装 sshpass 到当前用户

如果系统没有 sshpass,可以从 apt 包下载并解压到用户目录,不需要 sudo:

workdir=$(mktemp -d)
cd "$workdir"
apt download sshpass
dpkg-deb -x sshpass_*.deb extracted
install -m 755 extracted/usr/bin/sshpass "$HOME/.local/bin/sshpass"

验证:

sshpass -V

配置文件

配置文件位置:

~/.config/lsh/config.json

也可以通过命令查看:

lsh config-path

初始化配置文件:

lsh init

配置示例:

{
  "version": 1,
  "entries": [
    {
      "name": "demo-server",
      "host": "192.0.2.10",
      "port": 22,
      "user": "alice",
      "password": "your-password",
      "extra_args": ["-o", "StrictHostKeyChecking=accept-new"]
    }
  ]
}

字段说明:

  • name:连接名称,显示在列表中
  • host:服务器 IP 或域名
  • port:SSH 端口,通常是 22
  • user:SSH 用户名
  • password:SSH 密码,明文保存
  • extra_args:传给 ssh 的额外参数

使用

查看连接列表:

lsh list

示例输出:

1. demo-server - alice@192.0.2.10:22

按编号连接:

lsh 1

连接命令格式:

lsh <number>

打包

打包当前版本的 Linux x86_64 包:

bash scripts/package.sh --target x86_64-linux

默认多平台打包:

bash scripts/package.sh

默认目标:

  • x86_64-linux
  • aarch64-linux
  • x86_64-macos
  • aarch64-macos

打包产物位于:

dist/lsh-<version>-<target>/lsh
dist/lsh-<version>-<target>.tar.gz

常用参数:

bash scripts/package.sh --target x86_64-linux
bash scripts/package.sh --target x86_64-linux --target aarch64-linux
bash scripts/package.sh --no-archive
bash scripts/package.sh --output release
bash scripts/package.sh --debug

安全说明

当前版本按设计使用明文配置文件保存密码:

~/.config/lsh/config.json

配置文件会尽量以 0600 权限创建,但密码仍会以明文保存在磁盘上。请只在可信机器上使用。

如果是生产环境或长期使用,建议优先改用 SSH key,而不是密码登录。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors