SSH 配置文件是什么
位于 ~/.ssh/config 的 SSH 配置文件让你按主机保存设置——名字、用户、端口、密钥和几十个选项——这样你不用敲 ssh -i ~/.ssh/work_key -p 2222 [email protected],只敲 ssh myserver 就行。对任何在终端里用 SSH 的人,这是最大的一项体验升级。本文讲格式、你真正会用的选项、以及同样的思路在移动端怎么实现。
基本格式
建 ~/.ssh/config(权限 600),每台主机加一个块:
Host myserver
HostName 203.0.113.7
User deploy
Port 2222
IdentityFile ~/.ssh/work_key 现在 ssh myserver 就展开成完整命令。Host 是你敲的别名;HostName 是真实地址。光这一点就值 90% 了。
你真正会用的选项
| 选项 | 作用 |
|---|---|
HostName | 真实主机名或 IP |
User | 登录用户名 |
Port | 非默认端口(若你挪离了 22) |
IdentityFile | 用哪把私钥 |
IdentitiesOnly yes | 只递那把密钥——修 too many authentication failures |
ServerAliveInterval 60 | 保活——修闲置 broken pipe 掉线 |
ProxyJump bastion | 经跳板机中转 |
HostKeyAlgorithms +ssh-rsa | 老服务器兼容(no matching host key) |
通配符与默认值
Host 接受模式,设置自上而下生效,所以你可以给所有主机设默认、再按主机覆盖:
Host *
ServerAliveInterval 60
AddKeysToAgent yes
Host *.internal.example.com
User admin
ProxyJump bastion
Host bastion
HostName 198.51.100.9
User jump Host * 块给所有地方设合理默认;更具体的块在其上叠加。把具体主机放在宽通配符上面——每个选项第一个匹配的生效。
一行搞定跳板机
要连一台只能经跳板机访问的私有服务器,ProxyJump 自动串起这几跳:
Host db
HostName 10.0.0.5
User postgres
ProxyJump bastion 然后 ssh db 就透明地经 bastion 路由。(像 Tailscale 这样的网格 VPN 是另一种选择,能彻底省掉跳板机。)
移动端的等价物
移动 SSH 客户端不用 ~/.ssh/config 文件——它们把同样的信息按连接存在 App 里:每个保存的主机有自己的用户、端口、密钥、保活设置,在表单里编辑而不是文本文件。好处一样(配一次、永久复用);机制是 UI 而不是配置文件。在 TermAI 里,每条连接带自己的认证和选项,所以 IdentitiesOnly 或自定义端口的等价物,就是那条连接上的一个字段。
常见问题
SSH 配置文件在哪?
Linux 和 macOS 上是 ~/.ssh/config(没有就建,权限 600)。Windows 上是 C:\Users\You\.ssh\config。
怎么给某台主机用特定密钥?
在那台主机的块里加 IdentityFile ~/.ssh/that_key 和 IdentitiesOnly yes——第二行让客户端不再递其它密钥。
Host 和 HostName 有什么区别?Host 是你敲的别名(ssh myserver);HostName 是它解析到的真实地址。
移动 SSH App 用 ~/.ssh/config 吗?
不用——它们把同样的设置按连接存在 App 的 UI 里。便利完全一样;是表单而不是文件。
快速事实
- 位置:
~/.ssh/config(权限 600);WindowsC:\Users\You\.ssh\config - 核心:
Host别名 →HostName、User、Port、IdentityFile - 最有用的选项:
IdentitiesOnly yes、ServerAliveInterval 60、ProxyJump - 模式:
Host *设默认;第一个匹配生效,具体块放通配符上面 - 移动端:App 按连接存同样的设置——是表单,不是文件
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.