如题。LZ 是 SecureCRT+FX 正版用户。
一直在规划把工作流迁移到 Linux 下,但是 SecureCRT+FX 在 Linux 下一直找不到平替。
我的需求总结一下的话就是,我需要管理相当数量的 ssh 连接 (100-200),做好分类,并且让我建立的连接有日志。还有少量的 rdp 连接 (10 个左右),这个自己写点脚本足够了。
我目前可以想到的解决方案是,把我 SecureCRT 上记录的连接手动转写到 .ssh/config 文件里面,然后写个 shell 脚本来管理这个文件。
我的工作流还分布在 Emacs 和 FireFox 里面。
各位来分享一下 Linux 下管理大量 ssh 连接的经验?
1
hefish 2023-10-12 22:41:02 +08:00
本论坛不是有大佬撸了个 xterminal 吗,还行的。
|
2
pengtdyd 2023-10-12 22:48:13 +08:00
Linux 还需要这个???不是直接 ssh command 就可以了吗?
|
3
kalebroccoli 2023-10-12 23:07:30 +08:00
linux 下同样有 SecureCRT+FX
|
5
salmon5 2023-10-12 23:21:19 +08:00
SecureCRT+SecureFX 有 Ubuntu 20.04/22.04 版
|
6
TabGre 2023-10-12 23:37:14 +08:00 via iPhone
macOS 呢?
|
7
emperinter 2023-10-13 00:20:35 +08:00
terminal?
|
8
LonnyWong 2023-10-13 00:23:09 +08:00 1
https://github.com/trzsz/trzsz-ssh
支持搜索和选择,可以在命名上含有分组名,然后搜索它们。 |
9
LindsayZhou 2023-10-13 07:41:43 +08:00 1
管理配置的话,自己写了个 python 小脚本。
解析也很简单,碰到一个 "host " 开头就算一个配置,然后从这行的注释 ("#" 分割) 去读定制的东西。 Host github.com # hide HostName github.com User git Host myhost # group:dev HostName 192.168.1.1 这种 格式。 前两天刚写的,就不拿出来献丑了, 要留日志的话,自己写个 alias 就行了。gnu 有个 script , scriptreplay 命令,可以用来记录终端和回放。 |
10
LindsayZhou 2023-10-13 07:48:01 +08:00
|
11
justrest 2023-10-13 08:34:23 +08:00
求 arm64 版本的 ssh ,试过 xshell ,很多网络设备连接不上,tabby 兼容好一点但是交换机配置中的中文无法正常显示。。。感谢感谢
|
12
shervy 2023-10-13 08:42:59 +08:00
xshell 强推,无敌。不接受反驳,反驳的是不会用。
|
15
cndns 2023-10-13 08:47:01 +08:00
Ansible
|
17
miaoxiao 2023-10-13 08:57:17 +08:00
windterm
|
18
gridsah OP @LonnyWong #8 这个看起来符合我管理上的需求,但是我更偏向于自己造轮子 :b
@LindsayZhou #9 和我现在的思路差不多。我想要实现的是那种 tui 方向键选定然后按回车键打开链接的那种,有没有啥思路?另外,图炸了 |
20
LindsayZhou 2023-10-13 09:22:39 +08:00 1
@gridsah #18
bash 写 tui 貌似很麻烦,python 应该也要装第三方库,那还不如用楼上提到的 trzsz-ssh 得了 如果硬要写代码,golang 看到有个库 https://pkg.go.dev/github.com/kevinburke/ssh_config#Host 把 Host 类的 EOLComment 解析一下。 Golang 写 TUI 我喜欢用 https://github.com/charmbracelet/bubbletea 不过我自己没需求,就没什么动力去写了。 imgur 估计有什么问题,屏蔽 ip 了?我这边看到正常的。下次直接用链接得了。https://pb.koi.moe/KJ |
21
LindsayZhou 2023-10-13 09:35:50 +08:00 1
想到是不是可以自定义一下 fzf 做搜索,虽然这算不上 tui ,不过也很像了。
我也是前两天开始用 fzf 的,效果示例是这样子: https://pb.koi.moe/kk 这个是我在 zsh 里搜索命令历史记录。 |
22
gridsah OP @LonnyWong #19
@LindsayZhou #20 我现在的思路是,用 python 自带的 curses 库写一个 tui ,每行根据 .ssh/config 显示一个配置,上下键选定按下 enter 直接调 openssh 建立连接。基本逻辑不是很复杂,最复杂的应该也只是搜索了吧,所以 curses 虽然简陋点但也够用。 在我的规划里,这个工具应该是一个简单的脚本,最多几百行,而不是一个 project ,所以 tssh 太重了。 |
23
minami 2023-10-13 09:52:06 +08:00
SecureCRT+FX 不是本来就有 Linux 版吗
|
24
LindsayZhou 2023-10-13 09:54:16 +08:00
@LindsayZhou #21
233 用 fzf 真就一条命令 https://pb.koi.moe/kl ssh $(sshhosts | grep -vE "^\+|^$" | fzf -m | awk '{print $1}') https://git.sr.ht/~lindsay/dotfiles/tree/master/item/bin/sshhosts 上班摸鱼写的,没继续润色了。 |
25
LindsayZhou 2023-10-13 09:57:23 +08:00
@LindsayZhou 续 #24
忘了去掉 -m 参数了,那个是不用的。然后 fzf 可以不清空整个终端,不过我没找到参数。 |
26
gridsah OP 楼上那些说 SecureCRT+FX 有 Linux 版的,我一个正版用户难道不知道吗
|
27
nothingistrue 2023-10-13 10:04:31 +08:00
@shervy #12 先看看楼主的连接数,100-200 ,这个量级,xshell 这个贵物是用不起的。
|
28
4kingRAS 2023-10-13 10:10:10 +08:00
我看我司运维是有一个跳板机,跳板机上配置好所有公钥,然后直接 ssh 别名,类似 @LindsayZhou 的方法
|
29
LindsayZhou 2023-10-13 10:14:08 +08:00
@LindsayZhou 续 24
更简陋版: ssh $(grep -i "host " .ssh/config | awk '{$1=$1;print}' | fzf | awk '{print $2}') ~ 发太多回复被频率限制了 ~ |
30
gridsah OP |
31
dangyuluo 2023-10-13 10:19:17 +08:00 1
为啥不能.ssh/config 文件呢?
|
32
gridsah OP @dangyuluo #31 bro 注意看,100-200 个 ssh 连接的配置信息,这意味着 .ssh/config 里有 100-200 个 Hostname 配置,我可记不住每个连接都有啥样的 Hostname 。这个量级 vim/emacs 浏览一遍都得几分钟。
|
33
LindsayZhou 2023-10-13 10:26:27 +08:00 1
|
34
micookie 2023-10-13 10:29:09 +08:00
WindTerm
|
35
dangyuluo 2023-10-13 10:34:31 +08:00 1
@gridsah 我在前公司管理 CI 的时候,也有四五十个 SSH 机器需要,可能比你少一些但也没有本质区别。.ssh/config 支持 Include 语法,把不同区域的配置放在不同文件里就行了。至于登录日志,我不觉得客户段的登录日志是可信的,还是要在服务器上进行统计,或者由第三方服务统计。
|
36
gridsah OP @LindsayZhou #33
@dangyuluo #31 我刚转了 10 条连接的信息到 ssh_config 里面,确实发现有个针对 Host 字段的模糊匹配。100-200 这个量级的连接重新针对 Host 字段的模糊匹配设计命名规则的话,被模糊匹配过滤以后大概有 20 个左右的结果。 似乎,我不需要脚本了。连接信息的检索和修改 grep 和 sed 就够用。下面要解决的就是日志的问题了。 |
37
gridsah OP |
40
xiaoz 2023-10-13 10:54:26 +08:00
本论坛大佬的 https://www.xterminal.cn/
|
41
idblife 2023-10-13 11:40:23 +08:00
windterm
可惜不支持 wayland |
42
Izual_Yang 2023-10-13 11:48:59 +08:00
|
43
LindsayZhou 2023-10-13 12:50:24 +08:00
@Izual_Yang #42
我看到了一条 peco 和 fzf 比较的 issue: https://github.com/peco/peco/issues/422 我开始用 fzf 是 Emacs 有个插件依赖了(具体忘了哪个了)。现在 zsh 的文件补全和历史搜索也用它。既然有了就直接用 fzf 吧。 |
44
gearfox 2023-10-13 14:11:43 +08:00
scrt-sfx-9.4.1-3102.ubuntu22-64.x86_64.deb
|
45
mxq0923 2023-10-17 10:43:20 +08:00
通过 assh 生成 ssh_config ,通过 fzf 模糊搜索登录
|