У меня есть файл .ssh/config
настроенный для подключения к различным серверам с SSH:
###
# Identity files
###
IdentityFile ~/.ssh/id_dsa_home
IdentityFile ~/.ssh/id_dsa_github
IdentityFile ~/.ssh/id_rsa_bitbucket
###
# Global options
###
PasswordAuthentication no
PubkeyAuthentication yes
Host *
Port 22
Host icarus
User elitalon
HostName 192.168.1.1
Port 54301
Host zeus
User elitalon
HostName 192.168.2.1
Port 54302
Host github
User git
HostName github.com
Host bitbucket
User git
HostName bitbucket.org
Эта конфигурация работала нормально. Однако, поскольку я обновился до Mac OS X, Mountain Lion SSH ведет себя по-разному в отношении определенных значений Port
в записях Host
:
- Если я пытаюсь подключиться к
zeus
SSH всегда использует порт 22 вместо 54301. - Если я удаляю
Port 22
и пытаюсь подключиться кHost
без записиPort
, SSH использует первый набор значенийPort
(54301 в этом примере).
После попытки различных комбинаций кажется, что SSH обрабатывает все файлы конфигурации, но принимает только первое значение указанного Port
, что является ожидаемым поведением в соответствии с man-страницей:
Для каждого параметра будет использоваться первое полученное значение
Но на странице руководства также говорится, что
Файлы конфигурации содержат разделы, разделенные спецификациями `` Host '', и этот раздел применяется только для хостов, которые соответствуют одному из шаблонов, приведенных в спецификации.
поэтому я подумал, что, не указав значение Port
, порт по умолчанию будет меняться только в тех разделах, где на самом деле есть значение Port
.
Итак, как я могу настроить записи Host
для использования порта 22, кроме случаев, когда указано другое значение?
Спасибо!