Since the first obtained value for each parameter is used, more host-specific declarations should be given near the beginning of the file, and general defaults at the end.
Então
Host *
Port 22
deve ser movido para o final.
Eu tenho um arquivo .ssh/config
configurado para conectar-se a diferentes servidores com 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
Esta configuração costumava funcionar bem. No entanto, desde que fiz o upgrade para o Mac OS X, o SSH da Mountain Lion se comporta de maneira diferente em relação a valores específicos de Port
em Host
entries:
zeus
SSH, sempre use a porta 22, em vez de 54301. Port 22
e tentar conectar a uma entrada Host
sem Port
, o SSH usará o primeiro conjunto de valores Port
(54301 neste exemplo). Depois de tentar combinações diferentes, parece que o SSH processa todos os arquivos de configuração, mas recebe apenas o primeiro valor de Port
especificado, que é um comportamento esperado de acordo com a página man:
For each parameter, the first obtained value will be used
Mas a página man também declara que
The configuration files contain sections separated by ''Host'' specifications, and that section is only applied for hosts that match one of the patterns given in the specification.
Por isso, pensei que, ao não especificar nenhum valor Port
, a porta padrão mudaria somente nas seções em que, na verdade, tem um valor Port
.
Então, como posso configurar Host
entradas para usar a porta 22, exceto onde outro valor é especificado?
Obrigado!
Coloque a declaração "Host *" após todas as outras declarações de host para evitar que elas sejam substituídas. Mas realmente você não deve precisar dessa declaração, pois o padrão é o SSH usar a porta 22.
Tags ssh port osx-mountain-lion