logo NodeSeekbeta

【NodeScriptKit】跳转机管理脚本 loginfo

简述

分享下自己的基于 tmux 和 ssh 的跳转机管理工具loginfo, 项目地址.

优点:
  • 单纯bash实现, 基于自带ssh公钥登陆去跳转,较为安全
  • 使用跳转机tmux进行ssh连接其他主机,减少由于阻断导致ssh的断联
  • 使用tmux可以对连接的主机进行批量操作
安装方法:
curl -sSL https://raw.githubusercontent.com/ziwiwiz/loginfo/main/install_loginfo.sh | bash -s -- install

安装后自动放置在 /opt/loginfo/ 目录下。

配置文件:

在/opt/loginfo/host_conf, 参考示例:

# [group_name]
# id|ip|user|password|port|name
# id: 服务器编号, 组内唯一
# ip: 服务器ip地址
# user: ssh登陆用户名
# password: ssh登陆密码, 目前不支持自动密码登陆, 需要提前配置好公钥登陆
# port: ssh端口
# name: 服务器名称, 用于显示
[oracle]
111|seoul1.example.com|root|password|27026|seoul-oracle-1
112|seoul2.example.com|root|123456|22|seoul-oracle-2

[us]
121|us1.example.com|root||26086|us1
122|us2.example.com|root||1010|us2

# [custom_group_name]{id1,id2,...}
# custom_group_name: 自定义组名, 组内唯一
# id1,id2,...: 服务器编号
[group1]{111,121}

使用方式

定义别名zz 和 zzt(也可以自己自定义):

alias zz='/opt/loginfo/autologin.sh --no-tmux'
alias zzt='/opt/loginfo/autologin.sh'
zz - 直接 ssh 连接

输入服务器编号,直接 ssh 连接对应服务器
zz

zzt - tmux + ssh 综合操作

输入服务器编号或者相关命令
zzt1
输入all连接所有服务器
zzt2
功能:

  • 输入服务器编号,使用 tmux 打开单个 SSH session
  • 输入服务器组名,批量打开多个 SSH session
  • 输入自定义服务器分组组名, 批量打开多个 SSH session
  • 输入 all,一键打开所有服务器
  • ls / ll,查看当前 tmux session
  • kill all,关闭所有 session
  • kill <group_name>,关闭指定组 session
  • exit / q,退出 tmux
  • help,查看帮助

tmux 基础使用

这块都是tmux的功能了,可以自己搜索研究

按键 功能
Ctrl+b, d 离开 session, 保持连接
Ctrl+b, s 查看 session 列表
Ctrl+b, w 查看窗口列表

批量发送指令, 在 .tmux.conf 里添加:

# 命令输入
bind E command-prompt -p "Command:" \
       "run \"tmux list-panes -a -F '##{session_name}:##{window_index}.##{pane_index}' \
              | xargs -I PANE tmux send-keys -t PANE '%1' Enter\""

配置后:

  • Ctrl+b, E,输入命令,就可以发送到所有已打开的服务器(比如批量跑测试脚本).

@福尔摩斯

  • 加了点配色修改
    2025-04-29 20.33.17
    2025-04-29 20.29.50

  • 配置多个服务器后效果如下:
    ttt
    欢迎来提issue

  • bd

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72034位seeker

🎉欢迎新用户🎉