зробити ssh-хости глобальними для всіх користувачів комп'ютера


15

Отже, SSH має ці файли, які налаштовують налаштування для конкретного користувача.

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

Я хотів би глобалізувати деякі з цих файлів, як-от configі known_hosts. Щоб інші користувачі (включаючи root ) могли поділитися налаштованими хостами.

Який був би найкращий спосіб зробити це?

Відповіді:


21

Для ~/.ssh/configви можете помістити відповідні системні настройки в / і т.д. / SSH / ssh_config згідно довідкової сторінці :

ssh (1) отримує дані конфігурації з таких джерел у такому порядку:

  1. Параметри командного рядка
  2. файл конфігурації користувача (~ / .ssh / config)
  3. загальносистемний файл конфігурації (/ etc / ssh / ssh_config)

Для кожного параметра буде використано перше отримане значення. Файли конфігурації містять розділи, розділені специфікаціями "Host", і цей розділ застосовується лише для хостів, які відповідають одному з шаблонів, наведених у специфікації.

Зауважте, що буде використано лише перше значення, що означає, що користувач завжди може змінювати локальні параметри налаштування на локальній основі.

Для ~/.ssh/known_hostsви можете використовувати /etc/ssh/ssh_known_hostsабо інший файл , вказаний в опції конфігурації GlobalKnownHostsFile:

GlobalK knownHostsFile

Вказує файл, який використовуватиметься для глобальної бази даних хостів замість / etc / ssh / ssh_known_hosts.

Я не впевнений, чи можливо це для інших файлів, але я думаю, ви могли б щось розробити із символьними посиланнями, якщо ви дійсно хотіли б поділитися приватними ключами і між користувачами.


1
У вашій цитаті GlobalKknownHostsFile з'явилася помилка друку.
cjm

1
Ви можете встановити UserKknownHostsFile = / dev / null ssh ніколи не знайде дійсний ключ у файлі знаних користувачів користувачів_hosts, але користувач все одно може прийняти один тимчасовий.
Janning

1
@Janning, схоже, що для цього є IgnoreUserKnownHostsваріант (значення yesабо no).
каель

Зауважте, що глобальний /etc/ssh/ssh_known_hostsфайл повинен бути читаним у всьому світі. Я використовував ssh-keygen -Hf /etc/ssh/ssh_known_hostsдля повторної переробки шахти після вручну додавання записів, і, здається, вона була встановлена ​​лише для власника.
каель

1

Оскільки root все потужний, я б використав завдання root cron для копіювання файлів у інших користувачів. Відомих хостів та авторизованих ключів можна просто додати. Якщо це все на одних розділах, є варіант жорсткого посилання. Не впевнений, чи спрацювали б символьні посилання для файлів, але ви також можете спробувати це, вам просто потрібно помістити їх у спільне, але безпечне місце.


2
Це не дозволить користувачам додавати власні хости, що IMHO має ненавмисний ефект.
Maciej Piechotka

Я забуваю, якщо файл жорсткого посилання повинен мати ті ж самі perms, але я підозрюю, що це так. Однак ви можете скопіювати файл cron, а потім переконатися, що хімічні речовини є правильними.
ксенотерацид
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.