Большинство руководств по настройке OpenSSH советуют отключить парольную аутентификацию в пользу аутентификации на основе ключей. Но, на мой взгляд, аутентификация по паролю имеет значительное преимущество: возможность подключиться из абсолютно любого места без ключа. Если всегда использовать надежный пароль, это не должно представлять угрозу безопасности. Или нет?
Ответ 1
У аутентификации на основе пароля или ключа есть свои плюсы и минусы.
В некоторых случаях, например, аутентификация на основе ключа менее безопасна, чем аутентификация на основе пароля. В других случаях аутентификация на основе pw менее безопасна. В одних случаях один из вариантов более удобен, в других — менее.
Все сводится к следующему: когда вы используете аутентификацию на основе ключа, вы должны защитить свой ключ парольной фразой. Если у вас не запущен ssh-agent (ssh-agent освобождает вас от необходимости каждый раз вводить кодовую фразу), вы ничего не выигрываете в плане удобства. Безопасность спорна: вектор атаки теперь переместился с сервера на ВАС или вашу учетную запись, или вашу личную машину, (...) — их может быть или не быть легче взломать.
Думайте нестандартно, когда решаете этот вопрос. Выиграете ли вы или проиграете в плане безопасности — зависит от остального окружения и других мер.
Я был в этой же ситуации, «пароль» или «USB-накопитель с ключом на нем». Я выбрал первое, но изменил порт прослушивания SSH на что-то отличное от 22. Это останавливает огромное количество вредоносных скриптов, которые перегружают целые диапазоны сети.
Ответ 2
Ключи ssh предотвращают атаки типа «человек посередине» на основе вашего пароля.
Когда вы пытаетесь войти в систему с помощью ключа, сервер создает вызов на основе вашего открытого ключа и отправляет его вашему клиенту, который расшифровывает его и создает соответствующий ответ для отправки.
Ваш закрытый ключ никогда не отправляется на сервер, и любой, кто прослушивает его, не может сделать ничего, кроме как перехватить эту единственную сессию.
С паролем у них будут ваши учетные данные.
Мое решение — иметь портативный ключ ssh в подходящем формате на зашифрованном разделе на USB-носителе:
легко извлечь этот ключ в случае его потери;
ограничить, к каким серверам он дает мне доступ;
при этом носить его с собой;
хотя установка программного обеспечения для монтирования — та еще морока (truecrypt).
Ответ 3
Самым большим риском, учитывая, что вы позаботились об основах с помощью надежного пароля, я считаю то, что на многих компьютерах установлены кейлоггеры, и пользователь об этом не подозревает. Есть даже люди, создающие целые сайты полезных утилит, которые содержат трояны, так что это может случиться и с вами. Например, кейлоггер может отправить данные для входа в систему по электронной почте хакеру, который затем легко получит доступ к серверу.
Недавно меня предупредили о загрузке Zombee Mod installer (не jar, а именно installer) для добавления в Minecraft jar. Я просмотрел детали и перечислил множество утилит на этом сайте, которые были помечены как содержащие троян. Я не знаю, верно это или нет, но имена файлов были довольно конкретными. Также известно, что трояны помещаются в (некоторые) warez перед их распространением.
Ответ 4
Одно из потенциальных преимуществ SSH перед паролями заключается в том, что если вы не указываете парольную фразу SSH, то вам больше никогда не придется вводить пароль... ваш компьютер по своей природе является доверенным на сервере, поскольку у него есть ключ. Тем не менее явсегда использую парольную фразу SSH, поэтому исключаю это преимущество.
Я нахожу лучший ответ на вопрос, почему руководства пользователя часто рекомендуют SSH вместо парольной аутентификации, в руководстве Ubuntu для SSHOpenSSHKeys. Цитирую:
Если вы считаете это неважным, попробуйте регистрировать все злонамеренные попытки входа в систему, которые вы получаете в течение следующей недели. На моем компьютере — совершенно обычном настольном ПК — только за последнюю неделю было более 4000 попыток угадать мой пароль и почти 2500 попыток взлома. Как вы думаете, сколько тысяч случайных угадываний потребуется, чтобы злоумышленник наткнулся на ваш пароль?
По сути, если у вас есть надежный пароль большой длины с пунктуацией, верхним и нижним регистром, цифрами, то с аутентификацией по паролю у вас, скорее всего, все будет в порядке. Кроме того, если вы планируете отслеживать журналы и не делаете «супербезопасных» действий в сети в любом случае, т. е. используете его для домашнего сервера, тогда, конечно, пароль работает хорошо.
Linux