~/.ssh/config 文件是 OpenSSH 客户端的配置文件,位于用户主目录下的 .ssh 子目录中(例如 /home/username/.ssh/config)。它允许用户自定义 SSH 连接的行为,而无需每次连接时手动指定选项。该文件的作用主要包括简化 SSH 操作、提升安全性和管理多个主机的连接配置。
主要作用
- 简化命令:通过定义主机别名(Host),可以将复杂的连接参数封装起来。例如,将一个远程服务器的 IP、端口、用户名等预设为一个短名称,以后只需用 ssh alias 即可连接,而无需输入
ssh -p 2222 [email protected]。 - 自定义连接参数:支持设置各种 SSH 选项,如:
端口(Port):指定非标准端口。
用户名(User):默认登录用户。
密钥文件(IdentityFile):指定私钥路径,避免每次手动加载。
代理跳板(ProxyJump):配置跳板机连接。
其他高级选项:如 KeepAlive、Compression 等,用于优化连接稳定性或性能。
- 提升安全性:可以限制特定主机的认证方式(如
IdentitiesOnly yes,只使用指定密钥),或禁用不安全的选项(如StrictHostKeyChecking no,但不推荐)。 - 主机匹配:支持通配符(如
Host *.example.com),对多个相似主机应用同一配置。
文件格式示例
文件是纯文本,使用键值对格式(不区分大小写)。示例:
Host myserver
HostName 192.168.1.100
User myuser
Port 2222
IdentityFile ~/.ssh/my_private_key
注意事项
- 文件权限应为 600(
chmod 600 ~/.ssh/config),以确保安全。 - 如果文件不存在,可以手动创建。
- 系统级配置在 /etc/ssh/ssh_config,但用户级 ~/.ssh/config 优先级更高。
- 适用于 ssh、scp、sftp 等命令。
