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