## Production & External Zones
Host bast1002.wikimedia.org bast2002.wikimedia.org bast3005.wikimedia.org bast4003.wikimedia.org bast5002.wikimedia.org restricted.bastion.wmflabs.org
    StrictHostKeyChecking yes
    ProxyCommand none
    ControlMaster auto
    IdentitiesOnly yes

# See https://wikitech.wikimedia.org/wiki/Managing_multiple_SSH_agents#Using_multiple_agents_via_systemd for setting up multiple agents using systemd
Host *.wikimedia.org !gerrit.wikimedia.org !git-ssh.wikimedia.org
    User USERNAME
    StrictHostKeyChecking yes
    IdentitiesOnly yes
    IdentityAgent /run/user/1000/ssh-wmf-prod.socket
    IdentityFile ~/.ssh/PRODUCTION_KEY
    UserKnownHostsFile ~/.ssh/known_hosts.d/wmf-prod
    ProxyCommand ssh -a -W %h:%p bast1002.wikimedia.org

## Internal Zones
Host *.mgmt.eqiad.wmnet *.mgmt.codfw.wmnet *.mgmt.ulsfo.wmnet *.mgmt.esams.wmnet *.mgmt.eqsin.wmnet
    User root
    StrictHostKeyChecking no

# See https://wikitech.wikimedia.org/wiki/Managing_multiple_SSH_agents#Using_multiple_agents_via_systemd for setting up multiple agents using systemd
Host *.wmnet
    User USERNAME
    StrictHostKeyChecking yes
    IdentitiesOnly yes
    IdentityAgent /run/user/1000/ssh-wmf-prod.socket
    IdentityFile ~/.ssh/PRODUCTION_KEY
    UserKnownHostsFile ~/.ssh/known_hosts.d/wmf-prod

Host *.eqiad.wmnet
    ProxyCommand ssh -a -W %h:%p bast1002.wikimedia.org

Host *.codfw.wmnet
    ProxyCommand ssh -a -W %h:%p bast2002.wikimedia.org

Host *.esams.wmnet
    ProxyCommand ssh -a -W %h:%p bast3005.wikimedia.org

Host *.ulsfo.wmnet
    ProxyCommand ssh -a -W %h:%p bast4003.wikimedia.org

Host *.eqsin.wmnet
    ProxyCommand ssh -a -W %h:%p bast5002.wikimedia.org

## Networking Equipment
Host *-eqiad.wikimedia.org *-eqord.wikimedia.org
    ProxyCommand ssh -a -W %h:%p bast1002.wikimedia.org

Host *-codfw.wikimedia.org *-eqdfw.wikimedia.org
    ProxyCommand ssh -a -W %h:%p bast2002.wikimedia.org

Host *-esams.wikimedia.org *-knams.wikimedia.org
    ProxyCommand ssh -a -W %h:%p bast3005.wikimedia.org

Host *-ulsfo.wikimedia.org
    ProxyCommand ssh -a -W %h:%p bast4003.wikimedia.org

Host *-eqsin.wikimedia.org
    ProxyCommand ssh -a -W %h:%p bast5003.wikimedia.org

## Gerrit and Cloud VPS
# See https://wikitech.wikimedia.org/wiki/Managing_multiple_SSH_agents#Using_multiple_agents_via_systemd for setting up multiple agents using systemd
Host gerrit.wikimedia.org
    User USERNAME
    Port 29418
    StrictHostKeyChecking yes
    ProxyCommand none
    IdentitiesOnly yes
    IdentityAgent /run/user/1000/ssh-wmf-cloud.socket
    IdentityFile ~/.ssh/WMCS_KEY
    UserKnownHostsFile ~/.ssh/known_hosts.d/wmf-cloud

# See https://wikitech.wikimedia.org/wiki/Managing_multiple_SSH_agents#Using_multiple_agents_via_systemd for setting up multiple agents using systemd
Host *.wmflabs.org *.wmflabs *.wikimedia.cloud
    User USERNAME
    IdentityFile ~/.ssh/WMCS_KEY
    IdentityAgent /run/user/1000/ssh-wmf-cloud.socket
    StrictHostKeyChecking no
    UserKnownHostsFile ~/.ssh/known_hosts.d/wmf-cloud
    ProxyCommand ssh -a -W %h:%p restricted.bastion.wmflabs.org
