Question Ajouter un serveur à known_hosts


J'aimerais ajouter github.com au fichier known_hosts à partir de la ligne de commande alors que je crée un manifeste de marionnettes pour approvisionner un serveur distant.

J'ai essayé:

"ssh-keyscan -H github.com > /home/ubuntu/.ssh/known_hosts"

Mais lorsque le serveur tente d'accéder à github:

Failed to add the RSA host key for IP address '207.97.227.239' to the list 
of known hosts (/home/ubuntu/.ssh/known_hosts).

J'ai aussi essayé:

"ssh-keyscan -H github.com,207.97.227.239 > /home/ubuntu/.ssh/known_hosts"`

Mais accéder à github jette:

Host key verification failed.

Je suis sûr que cela n'a aucune utilité supplémentaire, mais si je ssh mon serveur puis ssh github et que je suis les étapes, je reçois le message suivant Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts et puis cela fonctionnera parfaitement.

Merci


6
2017-07-19 17:23


origine


Le message "Échec de l'ajout" indique qu'il pourrait y avoir un problème d'autorisations sur /home/ubuntu/.ssh/known_hosts. Est-il accessible en écriture par votre utilisateur? - Aaron Copley
Vous voudriez probablement >> ajouter au lieu de > pour écraser. - Dennis Williamson


Réponses:


Nous traitons ce problème en plaçant le fichier known_hosts sur le serveur de marionnettes et en le servant directement à partir de la marionnette:

file{
  "/home/appuser/.ssh/known_hosts":
  owner => "appuser",
  group => "appuser",
  mode => 755,
  source => "puppet:///modules/ssh/known_hosts",
  require => File["/home/appuser"];
}

Cela copie le fichier known_hosts correctement formaté à partir du référentiel de marionnettes, définit l'utilisateur en conséquence et garantit qu'il dispose des autorisations appropriées. Fonctionne bien pour nous.


9
2017-07-19 17:29



Par curiosité, pourquoi n'utilisez-vous pas le sshkey ressource pour publier la (les) clé (s) directement dans le fichier réputé global_hosts? - Zoredache
@ Zoredache Parce que je n'avais jamais entendu parler de cette installation auparavant. - sysadmin1138♦
Ah, j'aime le sshkey Mieux vaut alors remplacer le fichier entier, car cela me permet d’ajouter ou de supprimer des clés individuelles tout en permettant des modifications locales, ce qui est plutôt nécessaire dans mon environnement. - Zoredache
Merci ça marche un régal! @Zoredache sshkey a fière allure, mais ce serait bien si vous pouviez spécifier un nom de répertoire / fichier!
sshkey vous permet de spécifier le nom du répertoire / fichier. Il suffit d'utiliser target => "chemin complet / à / nom du fichier" - Jistanidiot


Ceci est mentionné dans les commentaires relatifs à la réponse acceptée, mais je viens juste de le comprendre et de penser que cette solution beaucoup plus propre mérite sa propre réponse.

Le noyau de la marionnette sshkey type installe les clés dans le fichier / etc / ssh / ssh_known_hosts sur l’ensemble du serveur sans avoir à graver le fichier en entier. Pour ce cas:

sshkey {'github':
  name => 'github.com',
  ensure => present,
  key => '[GitHub key (just the part after ssh-rsa, starting with AAA)]',
  type => 'ssh-rsa',
}

Va l'installer bien.


2
2018-02-19 06:33