
Можно ли как-то настроить сервер ssh, который не требует имени пользователя, пароля или сертификата для входа? Если это невозможно, если бы я дал всем клиентам один и тот же открытый ключ, каждое соединение было бы зашифровано индивидуально? (т.е. пользователь A не мог бы расшифровать полезную нагрузку соединения пользователя B)
Я хочу предоставить доступ к одной программе, которая будет запрашивать имя пользователя и пароль.
Однако шифрование необходимо, и пользователи не должны иметь возможности подглядывать друг за другом.
Спасибо
решение1
Я не думаю, что вы можете удалить часть аутентификации SSH, потому что вам всегда нужно имя пользователя, чтобы открыть сеанс, но вы можете установить пустой пароль и установить PermitEmptyPasswords
значение yes в вашей конфигурации sshd.
Но это не совсем безопасно, лучше использовать аутентификацию с помощью ключей.
Если вы даете своим клиентам открытый ключ, это значит, что они могут разрешить вам подключаться к их серверу ssh, а не к вашему.
Я думаю, вы хотите, чтобы клиенты подключались к вашему серверу ssh. В этом случае клиенты должны предоставить вам свой открытый ключ, и вы разрешите им подключаться. Если бы все клиенты использовали один и тот же открытый ключ для подключения к вашему серверу ssh, это означало бы, что все клиенты используют один и тот же закрытый ключ, а это не вариант (ваша роль не в том, чтобы предоставлять закрытый ключ, и закрытый ключ не должен передаваться).
Что касается шифрования и слежки, шифрование выполняется с помощью сеансовых ключей, а не открытого/закрытого ключа, но для обмена сеансовыми ключами ssh использует открытый/закрытый ключ.
Так что если все ваши клиенты используют одни и те же закрытые ключи, если они слежу за сеансом с самого начала, они могут расшифровать сеанс, если они слежу за сеансом после обмена сеансовыми ключами, расшифровать сеанс будет очень сложно.
Хорошая статья о том, как работает sshhttp://www.eng.cam.ac.uk/help/jpmg/ssh/ssh-detail.html
решение2
Немного поздно, но вы можете заставить пользователя запустить определенную программу при входе в систему (любыми способами), установив его оболочку для этой программы в /etc/passwd. Я думаю, что есть более сложный способ использования sshd с использованием файлов .sshrc, но я не предполагаю, что вы используете OpenSSH — все это есть в man-файлах.
решение3
Подумайте о закрытом ключе как осекрет. Когда вам нужно что-то доказать, например, свою личность в данном случае, вы можете заявить, что вызнать секрет, в данном случае, закрытый ключ ssh. Открытый ключ - это: "открытый", и в этом смысле он не может быть использован для доказательства чего-либо.
Это согласуется с рекомендацией о том, чтоникогда не давайте один и тот же закрытый ключ нескольким пользователям. Огромное количество уязвимостей безопасности возникает из-за попыток сделать процессы безопасности менее обременительными. Существуют и безопасные способы сделать это. Но вам, как администратору, придется проделать эту работу, иначе вы автоматически позволите своей сети и ее пользователям быть открытыми для атак.
«Не ищите легких путей»
решение4
Пользователиволясмогут шпионить друг за другом, поскольку они смогут получить доступ к пространству памяти других процессов (при условии, что они могут запускать произвольные программы).