Como fazer ssh para servidores internamente por nome de host sem nome de domínio?

Como fazer ssh para servidores internamente por nome de host sem nome de domínio?

Preciso fazer login em vários servidores no trabalho para realizar meu trabalho. Estou ficando cansado de digitar o FQDN de um servidor para acessar. Estou fazendo login/logout via ssh em nossa rede privada. Tenho 99% de certeza de que está em nossa própria rede privada, porque todos os servidores têm endereço IP 10.xyz. Existe uma maneira de fazer ssh em servidores apenas com o nome do host e não com o nome do domínio?

Temos servidores em vários países. A forma como nossos servidores são nomeados é muito longa. É nomeado da seguinte forma:

hostname.country.domainname.com

Estou digitando túnel do carpo ssh [email protected]

... toda vez que acesso um de nossos servidores. Se eu estiver nos EUA e tentar acessar outro host nos EUA, basta digitar ssh me@hostname2e conectar-me corretamente. No entanto, se estou nos EUA e tento me conectar a um servidor na Inglaterra, não consigo digitar e me conectar ao arquivo .ssh [email protected]hostname3

A solução alternativa que fiz foi configurar um alias em meu arquivo ~/.ssh/config para alguns dos servidores. No entanto, não acho viável adicionar mais de 1.000 servidores a esse arquivo. Já adicionei mais de 20 servidores e meus colegas de trabalho acham que sou louco, embora eu ache que eles são loucos por digitar o FQDN quando estão andando por aí.

Existe uma maneira fácil de configurar algo para que não precisemos digitar nosso nome de domínio.com todas as vezes?

Responder1

Você pode usar curinga e usar %hem sua configuração

por exemplo

Host *.eng
  Hostname %h.domainname.com

Agora, quando você fizer ssh foo.engisso, tentará se conectar ao foo.eng.domainname.com.

Você também pode adicionar outras opções a esta configuração; por exemplo, forçando o nome de usuário

Host *.eng
  Hostname %h.domainname.com
  User me

Agora, quando você fizer ssh foo.engisso, tentará se conectar foo.eng.domainname.comcomo usuário me.

% ssh foo.eng
ssh: Could not resolve hostname foo.eng.domainname.com: Name or service not known

(bem, obviamente recebo um erro antes de não ser um nome de host válido para mim!)

Então agora você só precisa de uma regra por país.

Responder2

Você pode usar a CanonicalDomainsopção na sua configuração do ssh.

Adicionar o seguinte ao seu arquivo de configuração ssh fará com que o ssh tente anexar domainname.coma qualquer host que tenha no máximo 1 ponto em seu nome:

CanonicalizeHostname yes
CanonicalDomains domainname.com

Com esta configuração, ssh foo.engprimeiro tentará foo.eng.domainname.come retornará foo.engse o host não puder ser encontrado. Da mesma forma, ssh github.comprimeiro tentaremos github.com.domainname.com, portanto, se você quiser se conectar ao GitHub, seu servidor DNS não deverá retornar registros para hosts não existentes.

O CanonicalizeMaxDotspode ser usado para controlar quantos pontos podem aparecer no nome do host antes que o ssh o considere totalmente qualificado e não anexe domainname.com. o padrão é 1, o que deve ser suficiente para você, dado o esquema que você tem atualmente, mas se você chegar a algo assim, hostname.city.countryprecisará aumentá-lo.

Responder3

Se você adicionar

search domainname.com

to /etc/resolv.conf, e use hostname.country, ssh(e outros programas de rede, nesse caso) serão anexados automaticamente domainname.compara você 1 .

Não acho que adicionar domínios de países diferentes ao seu searchcaminho seja uma boa ideia, porque você poderá obter um comportamento inesperado se dois servidores em dois países diferentes compartilharem o mesmo nome de host 2

Acredito que este método seja melhor do que alterar a sshconfiguração porque permite hostname.countryresolver independente do programa que você está usando ( telnet, VNC,...).

Verresolv.conf(5)


1 Mais precisamente, ele será anexado domainname.comse não conseguir resolver hostname.countrysozinho.

2 Nesse cenário, hostnameserá resolvido para o servidor no país cujo domínio está listado primeiro no searchcaminho.

informação relacionada