Je dois me connecter à plusieurs serveurs au travail pour faire mon travail. J'en ai assez de taper le nom de domaine complet d'un serveur auquel accéder. Je me connecte / me déconnecte via ssh sur notre propre réseau privé. Je suis sûr à 99% que c'est sur notre propre réseau privé b / c tous les serveurs ont ip addr 10.xyz Y a-t-il un moyen de ssh dans les serveurs avec juste le nom d'hôte et pas le nom de domaine?
Nous avons des serveurs dans plusieurs pays. La façon dont nos serveurs sont nommés est très longue. Il est nommé comme suit:
hostname.country.domainname.com
Je reçois du tunnel carpien en train de taper
ssh [email protected]
... chaque fois que j'accède à l'un de nos serveurs. Si je suis aux États-Unis et que j'essaie d'accéder à un autre hôte aux États-Unis, je peux simplement taper ssh me@hostname2
et je me connecte bien. Cependant, si je suis aux États-Unis et que j'essaie de me connecter à un serveur en Angleterre, je ne peux pas taper ssh [email protected]
et me connecter hostname3
.
La solution de contournement que j'ai faite a été de configurer un alias dans mon fichier ~ / .ssh / config pour certains des serveurs. Cependant, je ne pense pas qu'il soit possible d'ajouter plus de 1000 serveurs dans ce fichier. J'ai déjà ajouté plus de 20 serveurs et mes collègues pensent que je suis fou, bien que je pense qu'ils sont fous de taper le FQDN lors de la navigation.
Existe-t-il un moyen facile pour nous de configurer quelque chose afin que nous n'ayons pas à taper notre nom de domaine.com à chaque fois?
la source
$HOME/.ssh/config
ou vous pouvez le faire dans tout le système/etc/ssh/ssh_config
user@*.eng
?ssh [email protected]
et cela fonctionnera comme prévu. Tout cela ne fait que réécrire le composant hostname. Il va même travailler avecscp
etsftp
et ainsi de suite.Si vous ajoutez
à
/etc/resolv.conf
, et utiliserhostname.country
,ssh
(et d'autres programmes réseau, d'ailleurs) s'ajoutera automatiquementdomainname.com
pour vous 1 .Je ne pense pas que l'ajout des différents domaines de pays à votre
search
chemin soit une bonne idée car vous pouvez obtenir un comportement inattendu si deux serveurs dans deux pays différents partagent le même nom d'hôte 2Je crois que cette méthode est meilleure que de changer la
ssh
configuration car cela permethostname.country
de résoudre quel que soit le programme que vous utilisez (telnet
, VNC, ...).Voir
resolv.conf(5)
1 Plus précisément, il s'ajoutera
domainname.com
s'il ne peut pas se résoudre touthostname.country
seul.2 Dans un tel scénario, il
hostname
sera résolu sur le serveur du pays dont le domaine est répertorié en premier dans lesearch
chemin.la source
man resolv.conf
Vous pouvez utiliser l'
CanonicalDomains
option dans votre configuration ssh.L'ajout de ce qui suit à votre fichier de configuration ssh fera essayer à ssh de l'ajouter
domainname.com
à tout hôte ayant au plus 1 point dans son nom:Avec cette configuration
ssh foo.eng
va d' abord essayerfoo.eng.domainname.com
et à fallbackfoo.eng
si l'hôte ne peut pas être trouvé. De même,ssh github.com
essaiera d'abordgithub.com.domainname.com
, donc si vous souhaitez vous connecter à GitHub, votre serveur DNS ne doit pas renvoyer d'enregistrements pour des hôtes non existants.Le
CanonicalizeMaxDots
peut être utilisé pour contrôler le nombre de points pouvant apparaître dans le nom d'hôte avant que ssh ne le considère comme entièrement qualifié et ne s'ajoute pasdomainname.com
. il vaut 1 par défaut, ce qui devrait vous suffire compte tenu du schéma que vous avez actuellement, mais si vous arrivez à quelque chose comme cela,hostname.city.country
vous devrez l'augmenter.la source