Отключить вход по SSH через пароль для каждого пользователя?

1482
user137369

Я спросил некоторых провайдеров веб-хостинга (Bluehost и Dreamhost), и они оба сказали, что на общих учетных записях хостинга у них нет возможности отключить вход через SSH с паролем. Это означает, что даже если мы настроим ключи SSH, вход в систему без них и через пароль хостинга будет всегда включен, что в значительной степени сводит на нет большинство преимуществ для ключей.

Из того, что я могу найти в Интернете, редактирование /etc/ssh/sshd_config- это способ отключить вход в систему с помощью пароля, но, поскольку это общий хостинг, это невозможно.

Все это говорит, что они никогда не утверждали, что это невозможно сделать (хотя я не нашел пути), просто они не поддерживают это. Есть ли способ сделать это для каждого пользователя, чтобы я мог настроить его сам? И если нет, то почему, что (техническое / проектное) ограничение в том, как работает SSH, препятствует этому?

3
Хотя безопасность важна в любой среде, если она важна для вашей миссии, приобретите собственный выделенный сервер или VPS, на котором вы можете отключить пароли для входа в систему. У меня есть один из хостов, которые вы упомянули, но не на 100% то же самое, что отключение паролей на входе. Я создал длинные случайные пароли длиной более 50 символов и стучал по клавиатуре мусора в блокноте. После того, как я дважды вставил пароли, чтобы установить и подтвердить, что файлы блокнота никогда не сохранялись. Правда, в конце концов он может быть взломан, но его невозможно «найти» или угадать. Я полагаю, что другие аспекты совместного хостинга менее безопасны, чем мой пропуск. Tyson 9 лет назад 0
У меня более 60 символов паролей, защищенных в менеджере паролей. Не в этом дело. Я хотел бы знать, если это возможно, а если нет, то почему бы и нет. user137369 9 лет назад 0
Это может быть сделано, если они настроили его, вы не сможете настроить без su priveldges. Будут ли они это делать? Нет, не для этой модели ценообразования, переходите на следующий уровень, если вам это нужно. Tyson 9 лет назад 0
Да, я знаю это, я говорю столько же в вопросе. ** мой вопрос почему **? Почему SSH не позволяет этого? Это по замыслу; это ограничение, которое можно преодолеть, но им это не интересно; это ограничение базовой системы? Что мешает этому быть возможным? user137369 9 лет назад 0
Это ограничение, которое можно преодолеть, но они не заинтересованы в этом. Кроме того, число пользователей, которые хотят / нуждаются / требуют его, будет довольно низким в этой ценовой модели. У пользователей, попадающих в категорию желающих / нуждающихся / требующих этого, будут другие причины для получения привилегий su, которые приходят на следующем уровне хостинга. Если у вас есть su / root, вы можете заставить его работать самостоятельно. Робот панели управления хостами - это su на вашем общем хосте, они могут запрограммировать шаги, чтобы сделать это, основываясь на флажке, если захотят. Tyson 9 лет назад 0
Поэтому, чтобы сделать это, им нужно [указать каждого пользователя, которому нужна такая функциональность] (http://www.linux.org/threads/how-to-force-ssh-login-via-public-key-authentication.4253 /) в `/ etc / ssh / sshd_config`, верно? Но почему мы не можем создать пользовательский `sshd_config` с ограничениями, относящимися только к нашему собственному доступу? user137369 9 лет назад 0

3 ответа на вопрос

3
RedGrittyBrick

[Есть ли способ] отключить SSH вход через пароль для каждого пользователя?

Нет, вообще.

Каковы (технические / проектные) ограничения в том, как работает SSH, что мешает этому?

В конструкции или спецификации протокола SSH есть примечание, которое препятствует этому.

Это ограничение конкретной реализации в демоне (или службе) SSH

Обычная sshdпрограмма на платформах Linux (и т. Д.) Была написана для чтения одного файла конфигурации, который применяется ко всем пользователям этого экземпляра программы.

Я полагаю, что было бы возможно написать демон SSH, который ищет дополнительный файл конфигурации в домашнем каталоге пользователя (например). Однако это не было сделано (вероятно, недостаточный спрос)


Есть что-нибудь примерно эквивалентное?

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

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

Вы можете вручную отредактировать / etc / shadow и установить зашифрованный пароль на `x`. Поскольку ничто не зашифровывает эту строку, нет действительного пароля. Теперь, если бы только был способ заставить стандартные инструменты сделать это для нас ... Jeremy Phelps 7 лет назад 1
-1
davidgo

SSH DOES support this function, and its quite trivial to implement - as others have said, it needs the co-operation of your provider. You would do it by setting up a user account without a valid password (On my distro you can do this by failing to enter a password a few times on adduser, but you can always edit /etc/shadow and change the encrypted password to "*" or "!" - as many accounts will already be set up.

The second step is to install your public key in authorised_hosts - this negates the need for ssh to check your password to give you access.

Да, как я уже много раз комментировал и упоминал в первоначальном вопросе, я понимаю, что это возможно сделать с вмешательством хозяина. Мой вопрос: почему нельзя обойтись ** без ** вмешательства хоста, для каждого пользователя. user137369 9 лет назад 0
-1
Kenster

With the OpenSSH server, to disable password authentication on a per-user basis, you would add these lines to the sshd_config file:

Match user someuser PasswordAuthentication no 

Refer to the sshd_config manual for details. After editing sshd_config, be sure to restart sshd.

Как я уже сказал в оригинальном вопросе и во многих комментариях, у меня нет доступа к `/ etc / ssh / sshd_config`. user137369 9 лет назад 2
И это не имеет значения, если бы ты сделал. Это не "на пользователя". Это для всей системы. RichieHH 6 лет назад 0

Похожие вопросы