Я только недавно начал использовать ключи SSH вместо паролей (конечно, благодаря GitHub), поэтому имейте в виду, что я довольно новичок во всей этой концепции. В настоящее время мои ключи просто лежат в ~ / .ssh, но я не уверен, что это хорошая практика. Например, если у меня есть несколько компьютеров, мне нужно будет дублировать свои закрытые ключи, что я считаю нежелательным. Или, если мой жесткий диск станет капутом, я потеряю эти ключи, что (я думаю) также нежелательно.
Итак, каковы рекомендации по безопасному, удобному и надежному хранению ключей SSH?
Похоже, использование смарт-карты является опцией (см. Смарт-карты для хранения ключей gpg / ssh (Linux) - что мне нужно? ), Это лучший вариант ?
Обновление. Причиной этого вопроса было то, что многие службы (например, GitHub, AWS EC2) предоставляют инструкции о том, как настроить ключи SSH для использования службы, но практически не имеют фона (например, что делать, если у вас уже есть сгенерированный ключ). по ssh-keygen
[1], то , что рекомендуемые меры безопасности). И неясно, является ли эта информация на самом деле неважной, или вы должны знать ее «по умолчанию».
Подводя итоги ответов до этого момента (но, пожалуйста, прочитайте их, и если у вас есть что добавить - пожалуйста, сделайте): кажется, что в этом случае будет хорошо, если вы просто оставите свои закрытые ключи в ~ / .ssh, пока вы держать их от других людей; но убедитесь, что у вас есть другой способ получить доступ к сервису, чтобы загрузить или сгенерировать новый ключ, если вы его потеряете (как это обычно бывает).
[1] GitHub использовался для предоставления помощи по управлению несколькими ключами .
Ответы:
Нет, на самом деле нет. Если у вас несколько компьютеров, вы просто создаете отдельный закрытый ключ на каждом из них. Для каждого закрытого ключа просто загрузите соответствующий открытый ключ в GitHub, используя тот же процесс.
На самом деле, нет; если вы потеряете свой закрытый ключ, просто сгенерируйте новый и загрузите соответствующий открытый ключ.
Как бы то ни было, вы правы, что дублирование закрытого ключа крайне нежелательно. В идеале закрытый ключ должен быть сгенерирован в одном файле (
~/.ssh/id_rsa
например) и никогда не должен оставлять этот файл, то есть он никогда не должен копироваться, перемещаться и особенно не передаваться по сети. (например, я исключаю их из резервных копий). Из-за природы асимметричных протоколов аутентификации вам нужно только заботиться о том, чтобы ваш личный ключ не попадал в руки других. Если вы идете немного за борт и сами это теряете, это обычно не имеет большого значения. (Это не следует путать с закрытыми ключами асимметричного шифрования , например, с ключами GPG, которые вы, вероятно, хотите сохранить.)источник
Я бы добавил, что ~ / .ssh / читается вашим браузером, если вы используете одну и ту же учетную запись пользователя для запуска обоих.
Попробуй! Направьте ваш браузер на ваш закрытый ключ в вашем домашнем каталоге. Это весело.
Поэтому я бы рекомендовал хранить ssh-ключи в домашнем каталоге другой учетной записи пользователя.
слово о ключах защиты парольной фразы
look_at_keys.html
источник
Существует очень хороший инструмент под названием KeePass2 ( http://keepass.info/ ) с расширением ( http://lechnology.com/software/keeagent/ ).
Вы можете хранить там пароли, SSH-ключи и многое другое (на официальной странице KeePass гораздо больше полезных расширений).
Если вы хотите автоматически войти в систему с помощью ваших SSH-ключей, вам просто нужно установить PuTTY, Pageant и KeePass с KeeAgent. Если вы настраиваете его правильно, вам не нужно настраивать ключи в PuTTY, Pageant или FileZilla.
Я использую это сам, и я очень рад этому. У меня есть более 30 VPS и Root Server с определенным количеством различных SSH-ключей, и единственное, что мне нужно сделать, это открыть KeePass (это не мой основной пароль, безопасный), а затем мне просто нужно ввести в консоль мою пароль.
источник
Я бы порекомендовал хранить закрытые ключи:
Я бы сказал, лучшее место было бы:
Еще лучше, просто распечатайте его и положите в пожаробезопасный сейф.
источник
У меня есть tar-файл, в котором есть мои настройки пользователя (.bashrc, .ssh / и другие файлы конфигурации), которые я храню в безопасном месте. Когда я получаю новую учетную запись оболочки, я распаковываю в нее файл tar.
Вы должны размещать свои закрытые ключи только на тех серверах, которым доверяете, в противном случае вы должны создать новый закрытый ключ на сервере только для этого сервера и разрешить ему доступ к вещам, к которым вы хотите иметь доступ.
Лично мне удобно просто копировать мои .ssh / вещи везде (это также означает, что обычный ключ ssh мгновенно получает доступ к ssh, так как он уже находится в файле author_keys).
источник
Вы можете хранить ваши ключи ssh в отдельном каталоге внутри зашифрованного раздела. Затем вы можете использовать ssh, указывая на этот каталог
-i
:Полное описание (
man ssh
):Мой подход к безопасности заключается в том, что я делю информацию на частную и общую. Я не хочу зашифровывать весь домашний раздел, поэтому копирую секретные файлы (например, в них
~/.ssh
) в зашифрованный раздел.Я думаю, что это дает довольно эффективную защиту, потому что вредоносное ПО не найдет ничего в ~ / .ssh, и, вероятно, не будет сканировать всю вашу систему или профили оболочки, чтобы найти это местоположение.
устанавливает путь к файлу конфигурации.
PS Я бы создал псевдоним
alias ssh='ssh -i ... -F ...'
и поместил бы его в свой профиль.PPS Я еще не проверял это, и я не знаю, как другие программы (например, git) будут работать с этими настройками ssh.
источник