Кілька відкритих ключів для одного користувача


55

Це питання схоже на автентифікацію відкритого ключа SSH - чи можна один відкритий ключ використовувати для декількох користувачів? але це навпаки.

Я експериментую з використанням ssh, щоб будь-який ssh-сервер працював на ваші відповіді.

Чи можу я мати кілька посилань на один користувач? У чому переваги цього? Чи можуть бути встановлені різні домашні каталоги для різних використовуваних клавіш (які посилаються на одного користувача)?

Будь ласка, дайте мені знати, якщо я не зрозуміла.

Дякую.

Відповіді:


80

Ви можете мати скільки завгодно ключів. Добре використовувати в будь-якому випадку окремі набори приватних / відкритих ключів для різних областей, наприклад, один набір для особистого використання, один для вашої роботи тощо.

Спочатку створіть дві окремі клавіатури, одну для дому та одну для роботи:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Потім додайте запис у свій ~/.ssh/configфайл, щоб вибрати ключ, який потрібно використовувати на основі сервера, до якого ви під’єднуєте:

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Далі додайте вміст свого документа id_rsa.work.pubдо ~/.ssh/authorized_keysробочої машини та зробіть те саме для домашнього ключа на домашній машині.

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

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


Це працює, навіть якщо id_rsa.work.pub та id_rsa.home.pub були посаджені на одному сервері, чи не так? Причина в тому, що я можу підключитися до сервера з різних комп’ютерів, тому мені цікаво, чи є сенс мати різні клавіші для кожного комп’ютера, навіть якщо вони підключаються до сервера як один і той же користувач. Дякую.
Рассел

2
Абсолютно! На стороні сервера ssh перевірятиме всі відкриті ключі у файлі санкціонованих ключів, поки не знайде збіг. Таким чином, ви можете помістити всі ключі в один і той же файл, який має дозволу на сервер без проблем.
Phil Hollenback

@PhilHollenback "ssh перевірить усі відкриті ключі у файлі санкціонованих ключів, поки не знайде відповідність" - ви маєте на увазі, що він продовжує надсилати виклики клієнту для кожного відкритого ключа, поки клієнт не доведе, що він може розшифрувати його? Чи є у вас якісь посилання на це? (щиро зацікавлений)
aaa90210

5

Має багато сенсу мати кілька ключів користувачів до одного користувача. Загальні причини:

  • резервне копіювання
  • git (наприклад Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • загальний доступ до програми

Що стосується різних хомедірів, ви можете змінити їх за ключем, попередньо environment="HOME=/home/user1"встановивши ключ користувача1 у файлі санкціонованих_кілів. Див man authorized_keys.

Спробуйте, YMMV.

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