Ключевое слово Host соответствует хосту taraget, указанному в командной строке.
Таким образом, при использовании следующего файла ssh test-host будет подключаться к 192.168.0.1 с текущим именем пользователя (то есть: игнорировать конфигурацию, специфичную для IP) - потому что test-host не соответствует 192.168.0.1 .
Host test-host
    Hostname 192.168.0.1
Host 192.168.0.1
    User test-user
Чтобы вышеуказанное сработало, как и ожидалось, вы должны установить CanonicalizeHostname=yes в своем файле конфигурации. Это может быть размещено в глобальном разделе (вверху) или отдельно для каждого хоста, например:
Host test-host
    Hostname 192.168.0.1
    CanonicalizeHostname yes
Host 192.168.0.1
    User test-user
Это приведет к тому, что test-host будет переписан 192.168.0.1 .
Обратите внимание, что ProxyCommand имеет особую семантику:
  CanonicalizeHostname
  
  Управляет выполнением явной канонизации имени хоста.  По умолчанию no , не выполнять перезапись имен и позволить системному распознавателю обрабатывать все запросы на поиск имени хоста.  Если установлено значение yes , то для соединений , которые не используют ProxyCommand ssh(1) будет пытаться канонизировать имя хоста , указанный в командной строке с помощью CanonicalDomains суффиксы и правила CanonicalizePermittedCNAMEs  Если для CanonicalizeHostname задано значение always , канонизация также применяется к прокси-соединениям.
  
  Если эта опция включена, то файлы конфигурации обрабатываются снова, используя новое целевое имя, чтобы выбрать любую новую конфигурацию в соответствующих строках Host и Match .
Ниже приведены альтернативы для достижения желаемого поведения:
A
host server1
  user myUser1
  hostname 192.168.0.1
host server2
  user myUser
  hostname 192.168.0.2
host server1 server2
  # global config here (such as proxycommand, etc)
В
host 192.168.0.1
  user myUser1
host 192.168.0.2
  user myUser
host 192.168.0.*
  # global config here (such as proxycommand, etc)