SecureCRT+FX 在 Linux 下的平替是什么?( Linux 下管理 ssh 连接的经验?)

2023-10-12 22:39:06 +08:00
 gridsah

如题。LZ 是 SecureCRT+FX 正版用户。

一直在规划把工作流迁移到 Linux 下,但是 SecureCRT+FX 在 Linux 下一直找不到平替。

我的需求总结一下的话就是,我需要管理相当数量的 ssh 连接 (100-200),做好分类,并且让我建立的连接有日志。还有少量的 rdp 连接 (10 个左右),这个自己写点脚本足够了。

我目前可以想到的解决方案是,把我 SecureCRT 上记录的连接手动转写到 .ssh/config 文件里面,然后写个 shell 脚本来管理这个文件。

我的工作流还分布在 Emacs 和 FireFox 里面。

各位来分享一下 Linux 下管理大量 ssh 连接的经验?

2767 次点击
所在节点    程序员
46 条回复
LindsayZhou
2023-10-13 09:35:50 +08:00
想到是不是可以自定义一下 fzf 做搜索,虽然这算不上 tui ,不过也很像了。

我也是前两天开始用 fzf 的,效果示例是这样子: https://pb.koi.moe/kk 这个是我在 zsh 里搜索命令历史记录。
gridsah
2023-10-13 09:46:47 +08:00
@LonnyWong #19
@LindsayZhou #20

我现在的思路是,用 python 自带的 curses 库写一个 tui ,每行根据 .ssh/config 显示一个配置,上下键选定按下 enter 直接调 openssh 建立连接。基本逻辑不是很复杂,最复杂的应该也只是搜索了吧,所以 curses 虽然简陋点但也够用。

在我的规划里,这个工具应该是一个简单的脚本,最多几百行,而不是一个 project ,所以 tssh 太重了。
minami
2023-10-13 09:52:06 +08:00
SecureCRT+FX 不是本来就有 Linux 版吗
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

上班摸鱼写的,没继续润色了。
LindsayZhou
2023-10-13 09:57:23 +08:00
@LindsayZhou 续 #24
忘了去掉 -m 参数了,那个是不用的。然后 fzf 可以不清空整个终端,不过我没找到参数。
gridsah
2023-10-13 10:01:15 +08:00
楼上那些说 SecureCRT+FX 有 Linux 版的,我一个正版用户难道不知道吗
nothingistrue
2023-10-13 10:04:31 +08:00
@shervy #12 先看看楼主的连接数,100-200 ,这个量级,xshell 这个贵物是用不起的。
4kingRAS
2023-10-13 10:10:10 +08:00
我看我司运维是有一个跳板机,跳板机上配置好所有公钥,然后直接 ssh 别名,类似 @LindsayZhou 的方法
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}')

~ 发太多回复被频率限制了 ~
gridsah
2023-10-13 10:14:46 +08:00
@4kingRAS #28 公司里也有 jumpserver 。

但这 100-200 ssh 连接是我自己的机器,只有我自己用,所以我不想耗自己的资源再起跳板机 :p
自己的嘛,能省就省
dangyuluo
2023-10-13 10:19:17 +08:00
为啥不能.ssh/config 文件呢?
gridsah
2023-10-13 10:24:22 +08:00
@dangyuluo #31 bro 注意看,100-200 个 ssh 连接的配置信息,这意味着 .ssh/config 里有 100-200 个 Hostname 配置,我可记不住每个连接都有啥样的 Hostname 。这个量级 vim/emacs 浏览一遍都得几分钟。
LindsayZhou
2023-10-13 10:26:27 +08:00
@gridsah #32 ssh_config 有个 include 关键字,可以 glob 模糊匹配

我一般是有行 include ~/.ssh/config.d/*.conf
micookie
2023-10-13 10:29:09 +08:00
WindTerm
dangyuluo
2023-10-13 10:34:31 +08:00
@gridsah 我在前公司管理 CI 的时候,也有四五十个 SSH 机器需要,可能比你少一些但也没有本质区别。.ssh/config 支持 Include 语法,把不同区域的配置放在不同文件里就行了。至于登录日志,我不觉得客户段的登录日志是可信的,还是要在服务器上进行统计,或者由第三方服务统计。
gridsah
2023-10-13 10:37:24 +08:00
@LindsayZhou #33
@dangyuluo #31

我刚转了 10 条连接的信息到 ssh_config 里面,确实发现有个针对 Host 字段的模糊匹配。100-200 这个量级的连接重新针对 Host 字段的模糊匹配设计命名规则的话,被模糊匹配过滤以后大概有 20 个左右的结果。

似乎,我不需要脚本了。连接信息的检索和修改 grep 和 sed 就够用。下面要解决的就是日志的问题了。
gridsah
2023-10-13 10:43:31 +08:00
@dangyuluo #35
我才意识到 .ssh/config 有模糊匹配 hhhh
关于日志,bro ,你说得对。但是这个日志主要是给我自己看的,所以,我信就行 :p
Lunrry
2023-10-13 10:45:08 +08:00
@micookie #34 windterm 怎么通过跳板机连接服务器呢
micookie
2023-10-13 10:51:32 +08:00

我没有用过,但是我看有这个功能的。
@Lunrry
xiaoz
2023-10-13 10:54:26 +08:00
本论坛大佬的 https://www.xterminal.cn/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/981486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX