Как хранить SSH ключи?

Я начал использовать SSH-ключи вместо паролей совсем недавно (спасибо GitHub, конечно), поэтому, пожалуйста, имейте в виду, что я довольно Новичок во всей этой концепции. В настоящее время мои ключи просто лежат в ~/.ssh, но я не уверен, что это хорошая практика. Е. Г. если у меня несколько машин, мне нужно дублировать свои закрытые ключи, что я считаю нежелательным. Или, если мой HDD идет капут, то я потеряю те ключи ,которые (я думаю) нежелательно, а также.

Итак, каковы лучшие практики о хранении ключей SSH надежно, удобно и надежно?

похоже, что использование смарт-карты является опцией (см. смарт-карты для хранения ключей GPG / ssh (Linux) - что мне нужно?), это самое лучшее одно?

Update: причина вопроса заключалась в том, что многие сервисы (например, GitHub, AWS EC2) предоставляют руководства по настройке ключей SSH для использования сервиса, но практически без фона (например, что делать, если у вас уже есть ключ, сгенерированный ssh-keygen [1], что рекомендуемые меры безопасности). И неясно, действительно ли эта информация неважна, или вы должны знать ее "по умолчанию".

подвести итоги ответов до этого момента (но, пожалуйста, прочитайте их, и если у вас есть что добавить-пожалуйста, сделайте): похоже, в этом случае все в порядке, если вы просто оставите свои личные ключи в~/.ssh, пока вы держите их от других людей; но убедитесь, что у вас есть другой способ доступа к сервису для загрузки или создания нового ключа, если вы потерять один (что обычно имеет место).

[1] GitHub используется для предоставления справка о том, как управлять несколькими клавишами.

54
задан Community 2011-08-16 23:36:23
источник

5 ответов

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

нет, на самом деле нет. Если у вас несколько компьютеров, вы просто создаете отдельный закрытый ключ на каждом из них. Для каждого закрытого ключа, просто загрузите соответствующий публичный ключ на GitHub, используя тот же процесс.

кроме того, если мой HDD пойти капут, я потеряю свой личный ключ ,который (я думаю) нежелательно, как ну.

не совсем; если вы потеряете свой личный ключ, просто создайте новый и загрузите соответствующий открытый ключ.

для чего это стоит, вы правы, что дублирование закрытого ключа крайне нежелательно. В идеале закрытый ключ должен быть сгенерирован в одном файле (~/.ssh/id_rsa например) и никогда оставьте этот файл-то есть его никогда не следует копировать, перемещать и особенно не передавать по сети. (например, я исключаю их из резервные копии) из-за природы асимметричных протоколов аутентификации, вам только нужно беспокоиться о сохранении вашего закрытого ключа из рук других. Если вы немного за бортом, и вы потеряете его самостоятельно, это, как правило, не имеет большого значения. (Это не следует путать с асимметричным безопасность закрытые ключи, например, ключи GPG, которые вы, вероятно, хотите сохранить.)

38
отвечен David Z 2011-08-16 23:50:06
источник

Я бы добавил, что~/.СШ/ читаем Ваш браузер, если вы используете ту же учетную запись пользователя для запуска.

попробуйте! Наведите браузер на private введите домашний каталог. Это весело.

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

слова на фразу защищая ключи

  • в эти дни, взлом не рандомизированных паролей супер быстро . Проверять out хэш-кошка
    • (хотя случайные и длинные пароли 12+ char все еще занимают достаточно много времени для грубой силы)
    • таким образом, зашифрованные AES ssh ключи не могут быть взломаны в обозримом будущем, пока вы используете хорошие длинные парольные фразы. См.рекомендации на GitHub
  • так что некоторые веб-сайт может догадаться-захватить ваш ключ без JavaScript . И затем грубой силой ключ в автономном режиме.
  • и браузеры посмотрите в буфер обмена ж / д тоже. Таким образом, копирование-вставка очень длинных парольных фраз также подвергает вас риску от более сложных атак javascript.

look_at_keys.HTML-код

 9 <HTML>
10 <HEAD>
11 <TITLE>look at keys</TITLE>
12 </HEAD>
13 <FRAMESET cols="20%, 80%">
14   <FRAMESET rows="100, 200">
15       <FRAME src="/Users/yourname/.ssh/stuff.pem">
16       <FRAME src="blah.html">
17   </FRAMESET>
18   <FRAME src="contents_of_frame3.html">
19 </FRAMESET>
20 </HTML>
8
отвечен HeyWatchThis 2012-08-24 23:57:54
источник

есть очень хороший инструмент под названием KeePass2 (http://keepass.info/) с расширением (http://lechnology.com/software/keeagent/)

вы можете хранить там пароли, ключи SSH и многое другое (на официальной странице KeePass гораздо больше полезных расширений)

Если вы хотите войти в систему автоматически с ключами SSH, вам просто нужно установить PuTTY, Pageant и KeePass с KeeAgent. Если вы настраиваете его правильно, вам не нужно настройте ключи в PuTTY, Pageant или FileZilla.

Я использую это сам, и я очень рад этому. У меня есть более 30 VPS и корневой сервер с определенным количеством разных ключей SSH, и единственное, что мне нужно сделать, - это открыть KeePass(это не мой основной пароль), а затем мне просто нужно ввести в консоли свою парольную фразу.

6
отвечен CentrixDE 2016-09-14 14:33:13
источник

Я бы рекомендовал хранить закрытые ключи:

  • offline (не в облаке)
  • в более чем одном месте
  • помимо всего, с чем это связано, например, ключ для ваших зашифрованных данных, храните его в отдельном месте от данных

Я бы сказал, лучшее место будет:

  • внешний жесткий диск
  • флэш-ключ
  • компьютер не подключен к интернет

даже лучше, просто распечатай и положи в пожарный сейф.

3
отвечен blah 2014-11-12 17:10:02
источник

У меня есть tar-файл, в котором настройки пользователя dir (.bashrc,.ssh / и другие конфигурационные файлы), которые я храню в безопасном месте. Когда я получаю новую учетную запись оболочки в любом месте, я распаковываю в нее файл tar.

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

лично мне удобно просто копировать .СШ/ вещи вокруг везде (это также означает, что обычный ключ ssh получает доступ к ssh мгновенно, так как он уже находится в файле authorized_keys).

1
отвечен EightBitTony 2011-08-16 23:43:00
источник

Другие вопрос security ssh-keys