Вопрос: Несколько открытых ключей для одного пользователя


Этот вопрос аналогичен Аутентификация открытого ключа SSH - может ли один открытый ключ использоваться для нескольких пользователей? но это наоборот.

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

Можно ли связать несколько открытых ключей с одним и тем же пользователем? Каковы преимущества этого? Кроме того, могут быть установлены различные домашние каталоги для разных используемых ключей (все они связаны с одним и тем же пользователем)?

Пожалуйста, дайте мне знать, если я не понимаю.

Благодарю.


46
2018-01-12 21:19


Источник




Ответы:


У вас может быть столько ключей, сколько вы пожелаете. Хорошей практикой является использование отдельных частных / открытых наборов ключей для разных сфер в любом случае, как один набор для вашего личного использования, один для вашей работы и т. Д.

Сначала создайте две отдельные клавиши: одну для дома и одну для работы:

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 поэтому вам не нужно вводить кодовую фразу все время.


71
2018-01-12 21:37



Это будет работать, даже если id_rsa.work.pub и id_rsa.home.pub были установлены на том же сервере правильно? Причина в том, что я могу подключиться к серверу с разных компьютеров, поэтому мне интересно, имеет ли смысл иметь разные ключевые пары для каждого компьютера, даже если они подключаются к серверу как один и тот же пользователь. Благодарю. - Russell
Абсолютно! На стороне сервера ssh проверяет все открытые ключи в файле authorized_keys, пока не найдет совпадение. Таким образом, вы можете поместить все ключи в том же файле authorized_keys на сервере, что не проблема. - Phil Hollenback
@PhilHollenback "ssh проверит все открытые ключи в файле authorized_keys, пока не найдет совпадение" - вы имеете в виду, что он продолжает отправлять вызовы клиенту для каждого открытого ключа, пока клиент не докажет, что он может его расшифровать? У вас есть ссылки на это? (искренне заинтересованный) - aaa90210


Имеет смысл использовать несколько ключей пользователей одному пользователю. Общие причины:

  • резервное копирование
  • git (например, Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • Rsync
  • общий доступ к приложению

Что касается разных гомедов, вы можете изменить их на ключ путем добавления environment="HOME=/home/user1" для ключа user1 в файле authorized_keys. Видеть man authorized_keys,

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


4
2018-01-12 21:29



Отлично, большое спасибо! - Russell