В настоящее время я работаю удаленно для ряда организаций, которым требуется регулярный доступ к их серверам для обслуживания и обновлений. Безопасно ли для меня добавить свой открытый SSH-ключ RSA в .ssh/authorized_keys
файл, чтобы я мог войти намного быстрее / без необходимости поиска паролей? Я действую в предположении, что было бы невозможно создать закрытый ключ из открытого, но прав ли я в своем предположении?
Если сделать еще один шаг вперед, возникнет ли какая-либо угроза безопасности при публикации содержимого моего открытого ключа RSA в Интернете? Я знаю, что если мой личный ключ получен, у меня много проблем, но кроме этого есть ли какие-нибудь реальные угрозы безопасности?
ssh
security
key-authentication
Нафтули Кей
источник
источник
Ответы:
Да, невозможно восстановить закрытый ключ из открытого ключа. Если бы это было возможно, RSA был бы в корне сломлен, и это было бы важной новостью (взлом RSA не только нарушил бы безопасность интернет-коммуникаций, но и допустил бы все виды банковского мошенничества, среди прочего).
Вход в систему с открытым ключом вместо пароля фактически повышает безопасность. Если ваш пароль недостаточно надежен, он может быть взломан злоумышленником с достаточной пропускной способностью. Если у злоумышленника нет копии вашего файла закрытого ключа, ключ RSA фактически не может быть взломан (1024-битный ключ эквивалентен чему-то вроде 160-символьного пароля, состоящего из случайных букв и цифр с учетом регистра) , Кто-то, кто следит за вашим плечом, может увидеть ваш пароль и ключевую фразу, но с ключом ему также понадобится получить ключ.
Закрытые ключи не всегда более безопасны, чем пароли. Если злоумышленник получит копию ваших файлов закрытого ключа (например, похитив ваш ноутбук или носитель с резервной копией), он может попытаться перебором парольной фразы, и он сможет сделать это с высокой скоростью, поскольку у вас нет возможности ограничить скорость (в отличие от предположения пароля, которые должны быть сделаны в Интернете). Если ваш пароль достаточно хорош и вы сразу заметите кражу, у вас все равно будет время отозвать ключ.
Открытый ключ вводит элемент защиты конфиденциальности: если кто-то знает, что вы использовали один и тот же открытый ключ для входа в A и для входа в B, он знает, что один и тот же человек вошел в A и B. Просто владение открытым ключом делает вас подозреваемый, что у вас также есть закрытый ключ, поэтому вы теряете некоторую анонимность. Но это обычно незначительно, особенно если вы просто храните ключ,
~/.ssh
чтобы его могли видеть только системные администраторы (которые также знают, с какого IP-адреса вы вошли в систему).Помимо этих соображений безопасности, закрытый ключ имеет много практических преимуществ. Вам не нужно вводить свой пароль так часто, и, в частности, вы можете запускать автоматические сценарии, которые не запрашивают вас, когда вы ввели ключ в ssh-agent или тому подобное. Вам не нужно вводить свой пароль так часто, чтобы вы могли сделать его более энтропийным (длиннее, сложнее для ввода). Вам не нужно вводить свой пароль так часто, поэтому существует меньший риск того, что он будет подслушан наблюдателем или камерой.
источник
Ответ Жиля в целом хороший, кроме
Ваши ключи ssh
~/.ssh
также могут быть прочитаны любым программным обеспечением, работающим под вашей учетной записью. Который, вероятно, большая часть программного обеспечения, которое вы запускаете. Поэтому вы должны доверять этому программному обеспечению и тем, кто его написал.источник