
Eu uso um arquivo .ssh/config para definir meu nome de usuário adequadamente com base em uma determinada parte de um subdomínio, por exemplo
Host *widgetshop.com*
User foobar
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Host *
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Isso funciona se eu escrever:
ssh foo.widgetshop.com
mas não funciona se eu escrevesse:
ssh foo
que após a resolução do caminho de pesquisa se torna o mesmo fqdn.
Alguém tem uma maneira de expandir os nomes curtos antes de chamar o ssh ou uma abordagem alternativa?
Responder1
Talvez você possa usar o host
comando:
ssh $(host -t A foo | cut -f1 -d" ")
Coloque isso em um script de shell (substitua "foo" por "$1") e execute o ssh.
Responder2
A partir do OpenSSH 6.5, você pode fazer isso com a CanonicalizeHostname
opção em ssh_config. Aqui está um exemplo que deve fazer o que você deseja:
CanonicalizeHostname yes
CanonicalDomains widgetshop.com
Host *.widgetshop.com
User foobar
Responder3
A página de manual ssh_config responde a isto:
O host é o argumento do nome do host fornecido na linha de comando (ou seja, o nome não é convertido em um nome de host canônico antes da correspondência).
Em outras palavras, não funciona porque não funciona dessa maneira.
Responder4
por favor veja minha "abordagem alternativa")
mbp:~ alexus$ grep f9 /etc/hosts
XX.XXX.XX.XXX f9
mbp:~ alexus$ ssh f9 hostname
f9.XXX.org
mbp:~ alexus$