Итак, я сгенерировал пару ключей без пароля и загрузил ее на все мои удаленные учетные записи. И теперь я могу с легкостью и удобством войти во все мои удаленные аккаунты. И так может злоумышленник, который (каким-то образом) получает доступ к моей учетной записи, которая имеет закрытый ключ (мой домашний компьютер). Итак, почему люди все еще используют логин без пароля? Это звучит как ужасная идея - хранить все яйца в одной корзине. Я становлюсь параноиком? :-D
3 ответа
Не совсем уверен, что вы ищете здесь; Вход без пароля (без пароля на закрытый ключ, как описано в исходном вопросе) - всегда плохая идея, и единственная ситуация, которую я видел, чтобы попытаться оправдать их (автоматический вход в учетную запись без оболочки для запуска предопределенного сервера) -сценарий, который запускается каждый раз, когда ключ используется для входа в систему), может быть заменен гораздо более безопасными способами.
Тем не менее, "парольные" входы в обычном смысле (с использованием приватной / публичной пары ключей вместо интерактивной клавиатуры или пароля), как правило, намного лучше, если вы можете сохранить личный ключ в безопасности, что чаще всего делается путем шифрования ключа с помощью пароль. Хотя да, вы решили защитить свой ключ с помощью пароля, но это не является частью аутентификации в том, что касается системы (сам ключ - это все, что заботит система, а не то, что вы должны сделать, чтобы предоставить его), так что это то, на что ссылается большинство людей, когда говорят "без пароля" логины.
У вас не должно быть ключа без пароля, который используется человеком. Люди, которые предполагают, что это предлагают, обычно слишком ленивы. Ваш закрытый ключ должен иметь пароль, и вы должны использовать ssh-agent, чтобы разблокировать ключ нужно только один раз.
В некоторых случаях службе требуется удаленный неинтерактивный доступ к другой службе. В этом случае может пригодиться пароль без пароля. Но этот сервисный ключ почти всегда должен использоваться только для одной услуги, а учетная запись, к которой осуществляется доступ, должна иметь другие средства защиты. Например, вы можете настроить ключ для перезапуска / управления какой-либо службой в удаленной системе. Вы не настроили бы этот ключ для учетной записи root, вы бы настроили его на непривилегированную учетную запись, а затем предоставили бы только необходимые привилегии через sudo или что-то еще.
Ключ ssh без пароля - ужасная идея, хотя, вероятно, это лучше, чем использование паролей в виде открытого текста. (Если его нужно использовать не в интерактивном режиме, это может быть приемлемой ужасной идеей, потому что на самом деле нет хорошей альтернативы, но тогда вы должны очень тщательно охранять закрытый ключ; см. Ответ @ Zoredache.)
Для интерактивных входов в систему рекомендуется создать пару ключей с парольной фразой и использовать ssh-agent
для хранения расшифрованного закрытого ключа. Вы можете использовать ssh-add -t ...
для истечения срока действия закрытого ключа через указанное время.