~/.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.com
HostName / User / Port常用

设置匹配主机的实际服务器地址、登录名和 SSH 端口。

示例
Host lab
    HostName server.example.com
    User alice
    Port 2222
IdentityFile / IdentitiesOnly常用

指定私钥;将 IdentitiesOnly 设为 yes 时,只使用配置中指定的身份。

示例
Host lab
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
ProxyJump常用

通过一台或多台 SSH 跳板机连接。

示例
Host lab
    ProxyJump alice@bastion.example.com
LocalForward

配置本地监听端口,转发到由 SSH 服务器访问的目标。

示例
Host lab
    LocalForward 127.0.0.1:15432 db.internal.example.com:5432
RemoteForward

配置远程监听端口,转发到由本地电脑访问的目标;受服务器策略限制。

示例
Host lab
    RemoteForward 127.0.0.1:18080 127.0.0.1:8080
DynamicForward

配置本地 SOCKS 侦听器。客户端必须单独配置。

示例
Host lab
    DynamicForward 127.0.0.1:1080
ExitOnForwardFailure

如果无法建立请求的初始转发侦听器,则 SSH 连接失败。

示例
Host lab
    ExitOnForwardFailure yes
ServerAliveInterval / ServerAliveCountMax常用

配置 SSH 级别的对等检查以及断开连接之前未答复检查的数量。

示例
Host lab
    ServerAliveInterval 30
    ServerAliveCountMax 3
ConnectTimeout

设置连接超时(以秒为单位)。

示例
Host lab
    ConnectTimeout 10
ForwardAgent

控制 SSH 认证代理转发。被攻陷的远程主机可以请求签名;仅对可信主机启用。

示例
Host lab
    ForwardAgent no
Include

包含额外的 SSH 配置文件;顺序影响选择哪些值。

示例
Include ~/.ssh/config.d/*.conf

权威参考

核对日期:2026 年 10 月 27 日