~/.ssh/config
将常用连接参数保存到 SSH 客户端配置文件。
执行前须知
第一段是文件内容,不是 shell 命令:请在本机编辑 ~/.ssh/config。通常先取得的配置值生效,应将具体 Host 块放在宽泛的 Host * 默认项之前。保护好文件权限(通常为 chmod 600 ~/.ssh/config),不要写入密码或私钥内容。ServerAlive 检测 SSH 对端是否响应,并不检测所有应用故障。ssh -G 不会连接,只显示生效配置;输出可能包含内部地址及路径。
使用示例
添加 lab 别名,指定端口、身份文件及 SSH 保活参数。
Host lab
HostName server.example.com
User alice
Port 2222
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
ServerAliveInterval 30
ServerAliveCountMax 3使用别名连接,或查看该别名最终生效的配置。
ssh lab
ssh -G lab参数与示例
Host pattern常用开始一个匹配 SSH 别名或主机模式的配置块。将具体规则放在通用规则之前:每个配置项采用首次匹配到的值。
示例
Host lab
HostName server.example.comHostName / User / Port常用设置匹配主机的实际服务器地址、登录名和 SSH 端口。
示例
Host lab
HostName server.example.com
User alice
Port 2222IdentityFile / IdentitiesOnly常用指定私钥;将 IdentitiesOnly 设为 yes 时,只使用配置中指定的身份。
示例
Host lab
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesProxyJump常用通过一台或多台 SSH 跳板机连接。
示例
Host lab
ProxyJump alice@bastion.example.comLocalForward配置本地监听端口,转发到由 SSH 服务器访问的目标。
示例
Host lab
LocalForward 127.0.0.1:15432 db.internal.example.com:5432RemoteForward配置远程监听端口,转发到由本地电脑访问的目标;受服务器策略限制。
示例
Host lab
RemoteForward 127.0.0.1:18080 127.0.0.1:8080DynamicForward配置本地 SOCKS 侦听器。客户端必须单独配置。
示例
Host lab
DynamicForward 127.0.0.1:1080ExitOnForwardFailure如果无法建立请求的初始转发侦听器,则 SSH 连接失败。
示例
Host lab
ExitOnForwardFailure yesServerAliveInterval / ServerAliveCountMax常用配置 SSH 级别的对等检查以及断开连接之前未答复检查的数量。
示例
Host lab
ServerAliveInterval 30
ServerAliveCountMax 3ConnectTimeout设置连接超时(以秒为单位)。
示例
Host lab
ConnectTimeout 10ForwardAgent控制 SSH 认证代理转发。被攻陷的远程主机可以请求签名;仅对可信主机启用。
示例
Host lab
ForwardAgent noInclude包含额外的 SSH 配置文件;顺序影响选择哪些值。
示例
Include ~/.ssh/config.d/*.conf权威参考
核对日期:2026 年 10 月 27 日