Zastąpienia specyficzne dla hosta OpenSSH ~ / .ssh / config nie działają

17

Próbowałem skonfigurować ~/.ssh/configplik za pomocą tego przewodnika. Zastąpienie użytkownika specyficzne dla hosta nie ma jednak żadnego efektu i ssh próbuje połączyć się przy użyciu globalnej nazwy użytkownika zamiast nazwy specyficznej dla hosta. Moja konfiguracja ssh jest skonfigurowana w następujący sposób:

$ cat ~/.ssh/config
User my_global_username

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Próbowałem również umieścić globalną nazwę użytkownika poniżej Host *wpisu, ale bezskutecznie. Wersja i kompilacja OpenSSH, którą uruchamiam to OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013 `.

andyn
źródło

Odpowiedzi:

30

Nie ma wartości „globalnej” .ssh/config. Jeśli chcesz mieć wartość domyślną, musisz umieścić ją w Host *sekcji:

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Host *
    User my_global_username

Uwaga na kolejność: wygrywa pierwszy mecz!

Cran
źródło
2
Kilka dalszych pytań: 1) Czy zachowanie ostatnio się zmieniło? Przewodnik na połączonej stronie internetowej jest wyraźnie widoczny Host *u góry.
andyn
2) Pierwszy mecz wygrywa, ale najwyraźniej tylko dla tych wartości, które jawnie ustawia. Czy to gdzieś jest udokumentowane? Man ssh_config nie pokazuje niczego związanego w sekcjach Host lub PATTERNS.
andyn
6
Pierwsze zdanie w drugim akapicie w ssh_config (5) mówi: „Dla każdego parametru zostanie wykorzystana pierwsza uzyskana wartość”. Nie wiem, czy to się ostatnio zmieniło, ale cały czas miałem na dole „Host *”.
cran