В большинстве руководств по настройке OpenSSH рекомендуется отключать аутентификацию по паролю в пользу аутентификации на основе ключей. Но, на мой взгляд, аутентификация по паролю имеет существенное преимущество: возможность подключения абсолютно из любого места без ключа. Если всегда использовать надежный пароль, это не должно быть угрозой безопасности. Или это должно?
security
ssh
authentication
ssh-keys
Septagram
источник
источник
Ответы:
Есть плюсы и минусы для pw или аутентификации на основе ключей.
Например, в некоторых случаях аутентификация на основе ключей менее безопасна, чем аутентификация по паролю. В других случаях его на базе pw это менее безопасно. В некоторых случаях одно удобнее, в других меньше.
Все сводится к следующему: когда вы выполняете аутентификацию на основе ключей, вы должны защитить свой ключ парольной фразой. Если у вас не запущен ssh-agent (ssh-agent освобождает вас от необходимости вводить вашу фразу-пароль каждый раз), вы ничего не получили в плане удобства. Безопасность спорна: вектор атаки теперь сместился с сервера на ВАС, или на Вашу учетную запись, или на Ваш персональный компьютер (...) - их может быть, а может и не быть легче сломать.
Думайте нестандартно, решая это. Вы получаете или теряете с точки зрения безопасности, зависит от остальной части вашей среды и других мер.
редактировать: О, только что увидел, что вы говорите о домашнем сервере. Я был в той же ситуации, «пароль» или «флешка с ключом на нем» всегда со мной? Я выбрал первый, но изменил порт прослушивания SSH на что-то отличное от 22. Это останавливает всех этих грубых злоумышленников, перебирающих зверства, форсирующих целые диапазоны сети.
источник
Использование ключей SSH имеет одну уникальную особенность по сравнению с паролем: вы можете указать разрешенные команды. Это можно сделать, изменив
~/.ssh/authorized_keys
файл на сервере.Например,
разрешит только команду `/usr/local/bin/your_backup_script.sh" с этим конкретным ключом.
Вы также можете указать разрешенные хосты для ключа:
Или объединить два:
С помощью ключей вы также можете предоставить временный доступ некоторым пользователям (скажем, консультантам) к серверу, не раскрывая пароль для этой конкретной учетной записи. После того, как консультант завершил свою работу, временный ключ может быть удален.
источник
Вы можете получить лучшее из обоих миров, разрешив только аутентификацию по паролю из вашей сети. Добавьте следующее в конец вашего
sshd_config
:источник
Вы частично ответили на свой вопрос - чем больше мест, откуда злоумышленник может подключиться, тем больше у него возможностей взломать ваш сервер с помощью брутфорсинга (рассмотрим DDoS).
Также сравните длину вашего пароля с размером ключа (обычно тысячи бит).
источник
mywifesnameisangelaandshehasanicebutt
неуязвимо для атак по словарю, очень сильно и очень просто для запоминания, но невозможно угадать. И это идет с бонусом, если брауни набирает очки, если вам когда-нибудь нужно будет сообщить пароль своей жене.Когда вы входите с паролем, вы передаете свой пароль на сервер. Это означает, что оператор сервера может изменить SSHD, чтобы получить доступ к вашему паролю. При аутентификации с открытым ключом они не могут получить ваш закрытый ключ, так как только ваш открытый ключ каждый отправляется на сервер.
источник
Ключи ssh предотвращают атаки человека по середине на ваш пароль.
когда вы пытаетесь войти с помощью ключа, сервер создает запрос на основе вашего открытого ключа и отправляет его вашему клиенту. который расшифрует его и создаст соответствующий ответ для отправки.
Ваш закрытый ключ никогда не отправляется на сервер, и любой, кто прослушивает, не может ничего сделать, кроме как перехватить этот единственный сеанс.
с паролем они будут иметь ваши учетные данные.
Мое решение - иметь портативный ключ ssh в подходящих форматах на зашифрованном разделе на ключе usb. это позволяет мне:
легко убрать этот ключ в случае его утери.
ограничить, к каким серверам это разрешает мне доступ
и все еще нести это вокруг
хотя установка программного обеспечения для монтирования является проблемой (truecrypt)
источник
Это компромисс, как говорит @MartinVejmelka.
Причина, по которой вы используете основанную на ключе аутентификацию, заключается в том, что ключ находится намного выше текущего или ближайшего будущего перебора, что вам нужно либо прийти с вашего ПК, либо иметь ключ на USB-накопителе или что-то подобное.
Пароль имеет следующие проблемы:
Ключ на несколько порядков длиннее и не отображается ни в одной точке, поэтому он позволяет избежать этих трех проблем.
источник
08Forging2?seminal*^Rajas-(Posed/|
. Это генерируется случайным образом, но у меня нет проблем с запоминанием. И удачи в серфинге на плечах или грубой силе.Хорошие моменты, упомянутые здесь уже.
Что я считаю самым большим риском, учитывая, что вы позаботились об основах надежного пароля, так это о том, что на многих компьютерах установлены клавиатурные шпионы, а пользователь этого не осознает. Есть даже люди, создающие целые сайты полезных утилит, которые содержат трояны, так что это может случиться с лучшими из нас. Кейлоггер, например, отправит по электронной почте данные для входа хакеру, который затем легко сможет получить доступ к серверу.
Недавно я был предупрежден Нортоном о загрузке установщика Zombee Mod (не jar, установщик) для добавления полета к банке Minecraft. Я посмотрел на детали, и Нортон перечислил много утилит на этом сайте, которые были помечены как содержащие троян. Я не знаю, правильно это или нет, но это было довольно специфично с именами файлов. Известно также, что трояны помещаются в (некоторые) хранилища до их распространения.
источник
Одно из потенциальных преимуществ SSH по сравнению с паролями состоит в том, что если вы не укажете парольную фразу SSH, вам больше никогда не придется вводить пароль ... ваш компьютер по сути является доверенным для сервера, поскольку у него есть ключ. Тем не менее, я обычно всегда использую парольную фразу SSH, поэтому я исключаю эту выгоду.
Я нахожу лучший ответ на вопрос, почему руководства пользователя часто рекомендуют аутентификацию SSH по паролю, взяты из руководства по Ubuntu для SSHOpenSSHKeys. Я цитирую,
По сути, если у вас надежный пароль большой длины с пунктуацией, прописными и строчными буквами и цифрами ... вы, вероятно, будете в порядке с аутентификацией по паролю. Также, если вы планируете отслеживать свои журналы, и в любом случае не делаете «супер-защищенных» вещей по сети ... то есть используете их для домашнего сервера. Тогда, конечно, пароль работает хорошо.
источник
Passwd auth метод действительно небезопасен (imho). С помощью этого механизма пароль будет передаваться на сервер sshd (как уже сказал @ramon). Это означает, что некоторые пользователи могут изменить сервер sshd для получения пароля. С атакой «человек посередине» это очень легко осуществить в локальной сети.
Вы можете просто установить исправление на сервере sshd, установив это исправление ( https://github.com/jtesta/ssh-mitm ). Используйте
arpspoof
и,iptables
чтобы поместить ваш пропатченный сервер между клиентом и аутентичным сервером sshd.Пожалуйста, отключите аутентификацию пароля: откройте файл конфигурации
/etc/ssh/ssh_config
и добавьте строкуPasswordAuthentication no
.источник
Вы можете обойти с
-o StrictHostKeyChecking=no
опцией. Это очень полезно при использовании ssh в сценарии оболочки.источник