安装配置tssh
安装tssh
1 | # Windows |
个性配置文件
支持在 ~/.tssh.conf
( Windows 是 C:\Users\your_name\.tssh.conf
)中进行以下自定义配置:
1 | # SSH 配置路径,默认为 ~/.ssh/config |
指定自定义的主机配置文件
1 | tssh -F S:\BaiduSyncdisk\tssh_conf\hosts |
分组标签
如果服务器数量很多,分组标签
GroupLabels
可以在按/
搜索时,快速找到目标服务器。按
/
输入分组标签后,回车
可以锁定;再按/
可以输入另一个分组标签,回车
再次锁定。在非搜索模式下,按
E
可以清空当前搜索标签;在搜索模式下按Ctrl + E
也是同样效果。支持在一个
GroupLabels
中以空格分隔,配置多个分组标签;支持配置多个GroupLabels
。支持以通配符 * 的形式,在多个 Host 节点配置分组标签,
tssh
会将所有的标签汇总起来。1
2
3
4
5
6# 以下 testAA 具有标签 group1 group2 label3 label4 group5,可以加上 `#!!` 前缀,以兼容标准 ssh
Host test*
#!! GroupLabels group1 group2
#!! GroupLabels label3
Host testAA
#!! GroupLabels label4 group5
记住密码
推荐使用公钥认证登录,可参考 openssh 的文档,或者参考 tssh wiki 公钥认证登录。
如果只能使用密码登录,建议至少设置一下配置文件的权限,如:
1
chmod 700 ~/.ssh && chmod 600 ~/.ssh/password ~/.ssh/config
下面配置
test1
和test2
的密码是123456
,其他以test
开头的密码是111111
:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 如果配置在 ~/.ssh/config 中,可以加上 `#!!` 前缀,以兼容标准 ssh
Host test1
# 下面是运行 tssh --enc-secret 输入密码 123456 得到的密文串,每次运行结果不同。
#!! encPassword 756b17766f45bdc44c37f811db9990b0880318d5f00f6531b15e068ef1fde2666550
# 如果配置在 ~/.ssh/password 中,则不需要考虑是否兼容标准 ssh
Host test2
# 下面是运行 tssh --enc-secret 输入密码 123456 得到的密文串,每次运行结果不同。
encPassword 051a2f0fdc7d0d40794b845967df4c2d05b5eb0f25339021dc4e02a9d7620070654b
# ~/.ssh/config 和 ~/.ssh/password 是支持通配符的,tssh 会使用第一个匹配到的值。
# 这里希望 test2 使用区别于其他 test* 的密码,所以将 test* 放在了 test2 的后面。
Host test*
Password 111111 # 支持明文密码,但是推荐使用 tssh --enc-secret 简单加密一下。如果启用了
ControlMaster
多路复用,或者是在Warp
终端,需要使用前面自动交互
的方式实现记住密码的效果。配置方式请参考前面自动交互
,加上Ctrl
前缀即可,如:1
2
3
4Host ctrl
#!! CtrlExpectCount 1 # 配置自动交互的次数,一般只要输入一次密码
#!! CtrlExpectPattern1 *assword # 配置密码提示语的匹配表达式
#!! CtrlExpectSendPass1 d7983b... # 配置 tssh --enc-secret 编码后的密码支持记住私钥的
Passphrase
( 推荐使用ssh-agent
)。支持与IdentityFile
一起配置, 支持使用私钥文件名代替 Host 别名设置通用密钥的Passphrase
。举例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15IdentityFile 和 Passphrase 一起配置,可以加上 `#!!` 前缀,以兼容标准 ssh
Host test1
IdentityFile /path/to/id_rsa
# 下面是运行 tssh --enc-secret 输入密码 123456 得到的密文串,每次运行结果不同。
#!! encPassphrase 6f419911555b0cdc84549ae791ef69f654118d734bb4351de7e83163726ef46d176a
在 ~/.ssh/config 中配置通用私钥 ~/.ssh/id_ed25519 对应的 Passphrase
可以加上通配符 * 以避免 tssh 搜索和选择时,文件名出现在服务器列表中。
Host id_ed25519*
# 下面是运行 tssh --enc-secret 输入密码 111111 得到的密文串,每次运行结果不同。
#!! encPassphrase 3a929328f2ab1be0ba3fccf29e8125f8e2dac6dab73c946605cf0bb8060b05f02a68
在 ~/.ssh/password 中配置则不需要通配符*,也不会出现在服务器列表中。
Host id_rsa
Passphrase 111111 # 支持明文密码,但是推荐使用 tssh --enc-secret 简单加密一下。记住密码
之后还提示输入密码?可能服务器的认证方式是keyboard interactive
,请参考下文记住答案
。
其他功能
使用
-f
后台运行时,可以加上--reconnect
参数,在后台进程因连接断开等而退出时,会自动重新连接。运行
tssh --enc-secret
,输入密码或答案,可得到用于配置的密文( 相同密码每次运行结果不同 )。上文说的
记住密码
和记住答案
等,在配置项前面加上enc
则可以配置成密文,防止被人窥屏。如果密码中含有
#
等特殊字符,直接配置密码明文可能会导致登录失败,此时则必须使用密文配置。1
2
3
4Host server2
# 如果配置在 ~/.ssh/config 中,可以加上 `#!!` 前缀,以兼容标准 ssh
encPassword de88c4dbdc95d85303682734e2397c4d8dd29bfff09ec53580f31dd40291fc8c7755
encQuestionAnswer1 93956f6e7e9f2aef3af7d6a61f7046dddf14aa4bbd9845dbb836fe3782b62ac0d89f
运行
tssh --new-host
可以在 TUI 界面轻松添加 SSH 配置,并且完成后可以立即登录。运行
tssh --install-trzsz
可以将 trzsz (trz
/tsz
) 安装到服务器上。- 默认安装到
~/.local/bin/
目录,可以通过--install-path /path/to/install
指定安装目录。 - 若
--install-path
安装目录含有~/
,则必须加上单引号,如--install-path '~/path'
。 - 若获取
trzsz
的最新版本号失败,可以通过--trzsz-version x.x.x
参数自行指定。 - 若下载
trzsz
的安装包失败,可以自行下载并通过--trzsz-bin-path /path/to/trzsz.tar.gz
参数指定。 - 注意:
--install-trzsz
不支持 Windows 服务器,不支持跳板机( 除非以ProxyJump
跳过 )。
- 默认安装到
关于修改终端标题,其实无需
tssh
就能实现,只要在服务器的 shell 配置文件中(如~/.bashrc
)配置:1
2
3
4
5# 设置固定的服务器标题
PROMPT_COMMAND='echo -ne "\033]0;固定的服务器标题\007"'
# 根据环境变量动态变化的标题
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'- 如果在
~/.tssh.conf
中设置了SetTerminalTitle = Yes
,则会在登录后自动设置终端标题,但是服务器上的PROMPT_COMMAND
会覆盖tssh
设置的标题。 - 在
tssh
退出后不会重置为原来的标题,你需要在本地 shell 中设置PROMPT_COMMAND
,让它覆盖tssh
设置的标题。
- 如果在