3个版本
0.1.3 | 2019年12月19日 |
---|---|
0.1.2 | 2019年11月30日 |
0.1.0 | 2019年11月30日 |
#94 in #quickly
9KB
137 行
🖥️ sshh
(即 ssh hosts
) - 快速连接到主机
问题
- 有很多主机需要SSH连接,但我永远也记不住特定的IP地址
- 无法使用域名,因为它们有时位于Cloudflare之后
- 无法使用子域名,因为它有时会暴露IP地址
.ssh/config
不支持服务器的分组- 我的
.bashrc
文件中充满了混乱的alias
sshh
允许您在配置文件中列出所有主机,然后通过名称连接到它们。
用法
$ sshh project-server # connect to the `project-server` host
$ sshh -g acme-corp main # connect to the `main` host under the `acme-corp` group
给定一个模糊的主机名,sshh
将连接到配置文件中定义的最后一个。
sshh
最终会调用带有合适参数的ssh
,所以请确保它已安装。
安装
- 使用cargo安装:
cargo install sshh
- 从GitHub发布页面下载二进制文件
- 自行构建和安装
- 克隆仓库
- 使用以下命令构建:
cargo build --release
- 使用以下命令安装:
cargo install --path .
配置
sshh
使用yaml文件格式,通常存储在~/.config/sshh.yml
。您可以通过-c
标志传递自定义配置。
服务器有以下选项
name
:服务器名称user
(可选):默认为“root”host
:域名或IP地址port
(可选):默认为22forwarding
(可选):是否启用认证代理转发,默认为falseidentity_key
(可选):要使用的身份密钥的位置,默认为无
可以将服务器放入组中,也可以单独列出。在servers
映射下列出单个服务器,在groups
下列出组。配置文件使用serde_yaml
反序列化。下面的示例应给出预期的格式的好指示。
servers:
- name: project-server
user: banana
host: 1.2.3.4
port: 1337
forwarding: true
- name: vpn
host: 2.3.4.5
groups:
- name: random-company
servers:
- name: main
user: app
host: random-company.com
- name: backup
user: app
host: backup.random-company.com
- name: acme-corp
servers:
- name: main
host: main.acme-corp.com
- name: venus
host: venus.acme-corp.com
依赖关系
约2.5-3.5MB
~63K SLoC