rendre les hôtes ssh globaux à tous les utilisateurs de l'ordinateur


15

Donc , SSH a ces fichiers que les paramètres de configuration pour un utilisateur spécifique.

~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts

J'aimerais globaliser certains de ces fichiers, comme configet known_hosts. Afin que d'autres utilisateurs (y compris root ) puissent partager les hôtes configurés.

Quelle serait la meilleure façon de faire cela?

Réponses:


21

Pour ~/.ssh/configvous pouvez placer les paramètres pertinents à l'échelle du système dans / etc / ssh / ssh_config selon la page de manuel :

ssh (1) obtient les données de configuration des sources suivantes dans l'ordre suivant:

  1. options de ligne de commande
  2. fichier de configuration de l'utilisateur (~ / .ssh / config)
  3. fichier de configuration à l'échelle du système (/ etc / ssh / ssh_config)

Pour chaque paramètre, la première valeur obtenue sera utilisée. Les fichiers de configuration contiennent des sections séparées par des spécifications «Host», et cette section n'est appliquée qu'aux hôtes qui correspondent à l'un des modèles indiqués dans la spécification.

Notez que seule la première valeur sera utilisée, ce qui signifie que l'utilisateur peut toujours remplacer localement les options de configuration à l'échelle du système.

Car ~/.ssh/known_hostsvous pouvez utiliser /etc/ssh/ssh_known_hostsou un autre fichier spécifié par l'option de configuration GlobalKnownHostsFile:

GlobalKnownHostsFile

Spécifie un fichier à utiliser pour la base de données de clés d'hôte globale au lieu de / etc / ssh / ssh_known_hosts.

Je ne sais pas si c'est possible pour les autres fichiers, mais j'imagine que vous pourriez travailler avec des liens symboliques si vous vouliez vraiment partager des clés privées entre utilisateurs également.


1
Vous avez une faute de frappe dans votre devis GlobalKnownHostsFile.
cjm

1
Vous pouvez définir UserKnownHostsFile = / dev / null ssh ne trouvera jamais de clé valide dans le fichier users_hosts des utilisateurs mais l'utilisateur peut toujours en accepter une temporaire.
Janning

1
@Janning, il semble qu'il y ait en fait une IgnoreUserKnownHostsoption pour cela (valeurs yesou no).
kael

Notez que le /etc/ssh/ssh_known_hostsfichier global doit être lisible par tous. J'utilisais ssh-keygen -Hf /etc/ssh/ssh_known_hostspour ressasser le mien après avoir ajouté manuellement des entrées, et il semble qu'il était défini sur propriétaire uniquement.
kael

1

Étant donné que root est tout puissant, j'utiliserais un travail cron root pour copier les fichiers des autres utilisateurs. Les hôtes connus et les clés autorisées peuvent simplement être ajoutés. Si tout est sur une partition, il y a l'option hardlink. Je ne sais pas si les liens symboliques fonctionneraient pour les fichiers, mais vous pouvez également essayer, il vous suffit de les placer dans un endroit partagé mais sécurisé.


2
Cela empêcherait les utilisateurs d'ajouter leurs propres hôtes, ce qui à mon humble avis est un effet involontaire.
Maciej Piechotka

J'oublie si un fichier hardlink doit avoir les mêmes perms, mais je pense que c'est le cas. Cependant, vous pouvez copier le fichier avec cron, puis vous assurer que les perms sont correctes.
xénoterracide du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.