这些步骤能不能合二为一,简化登录流程呢?
https://github.com/trzsz/trzsz-ssh 新版本 v0.1.16 就可以做到。这里简单介绍一下用法。
假设跳板机 J 后面有 A B C 三台服务器,一般是在本地配置跳板机 J ,登录 J 之后再手工选择 A B C 之一登录。
用 trzsz-ssh ( tssh ) 就可以在本地直接配置 A B C 三台服务器,省去在跳板机 J 上的人工操作。
以下是在 ~/.ssh/config 中配置 A B C 三台服务器的例子:
Host A
HostName 172.21.0.2 # 跳板机 J 的 IP
Port 2222 # 跳板机 J 的端口
User username # 跳板机 J 的用户名
# 以下是记住跳板机 J 的登录密码( 通过 tssh --enc-secret 得到 ),推荐使用公钥登录。
#!! encPassword f48160ae63d6eaa5a53983e5f9afe6a0c99f3e791d48714ba3405bed88ca4495
#!! ExpectCount 1 # 有些跳板机只要交互一次就能登录目标服务器,这里配置交互次数
#!! ExpectPattern1 Opt> # 跳板机的输入提示符
#!! ExpectSendText1 172.22.0.11\r # 有些跳板机可以直接输入目标服务器的 IP 登录,\r 代表回车
Host B
# 前面的配置和 A 一样,可以直接复制下来( ~/.ssh/config 支持通配符,可以简化配置 )
#!! ExpectSendText1 172.22.0.12\r # 这里配置目标服务器 B 的 IP
Host C
# 前面的配置和 A 一样,可以直接复制下来
#!! ExpectSendText1 172.22.0.13\r # 这里配置目标服务器 C 的 IP
当配置 ExpectCount 大于 0 后,通过 tssh --debug 登录,可以看到跳板机的输出,然后设计自己的登录剧本。
配置完成后,可以 tssh A 直接登录,也可以不带参数运行 tssh ,然后会有界面选择 A B C 进行登录,支持搜索,支持多选并批量登录。更多用法可以看开源的 README: https://github.com/trzsz/trzsz-ssh