1

Я хотел спросить, как я могу использовать одну и ту же аутентификацию (с закрытым и открытым ключом SSH) для пользователя root и для другого пользователя (пользователя sudo) на VPS.

Или, с точки зрения безопасности, лучше всего сделать процесс создания и загрузки ключа (я использую puttygen) непосредственно как пользователь sudo?

Отключить ли тогда root-вход и не применять ключ аутентификации на root? Это безопасно?

Заранее большое спасибо за помощь, я начинаю сходить с ума .. :(

3 ответа3

1

Здесь много разных (отдельных) вопросов ...

Практические соображения

Чтобы использовать одну и ту же пару ключей для нескольких пользователей, вы можете просто скопировать содержимое (часть или все) ~/.ssh/authorized_keys в файл ${HOME}/.ssh/authorized_keys Ssh /authorized_keys другого пользователя. Вы должны убедиться , что права доступа к файлу каталог .ssh и authorized_keys достаточно плотно или сервер SSH может без ошибок и отказаться от его обработки. Для идеи: только текущий пользователь нуждается в доступе к этим файлам, и им не нужно иметь возможность записывать или выполнять их, поэтому разрешение 400 для файла и 500 для каталога (необходимо выполнить, чтобы вы могли перечислите его содержимое) должно быть в порядке. Смотрите здесь информацию о масках разрешений, если вы незнакомы.

Вопросы безопасности

Во-первых, всегда полезно полностью отключить root-вход через SSH и установить отдельный (безопасный) пароль root на коробке. sudo примерно такой же уровень безопасности, как su если ваши пользователи sudoers имеют надежные пароли; если нет, то это не так.

Если вам часто требуется root, вы должны найти способы предоставить пользователям конкретные целевые разрешения для удовлетворения наиболее распространенных вариантов использования сервера. Это уменьшит необходимость входа в систему как root, что всегда повышает риск из-за широко открытых разрешений.

Для дальнейшего усиления безопасности вашего SSH-сервера вам необходимо:

  • Измените его порт с 22 по умолчанию на что-то с 5-значным номером (меньше 65536, из-за того, что номер порта является 16-битным значением)
  • Отключить SSH-вход на основе пароля для всех пользователей (не только root)
  • Используйте надежные пары ключей с 2048-битными или 4096-битными закрытыми ключами. Всегда используйте RSA, а не слабые, такие как DSA.
  • Установите надежные пароли для всех sudoers, а также root.

Вопрос о том, следует ли повторно использовать ту же пару ключей, исчезнет, если вы отключите root-вход в систему. Если вам нужно несколько постоянных пользователей, и вы являетесь единственным реальным человеком, который будет входить на сервер, я не вижу никакого вреда в повторном использовании одной и той же пары ключей путем копирования файла authorized_keys. Если на коробке будет несколько арендаторов, у каждого человека должна быть своя пара ключей.

0

Для того, чтобы иметь проверку подлинности для нескольких пользователей, просто добавьте публичный ключ SSH как к ~/.ssh/authorized_keys обычного пользователя и в ~/.ssh/authorized_keys суперпользователя. Затем вы можете выбрать учетную запись для входа, выбрав имя пользователя в вашей клиентской программе.

Как правило, рекомендуется полностью отключать root-вход и всегда использовать обычного пользователя для входа в систему и использовать sudo или su . Тем не менее, при аутентификации с открытым ключом риск того, что кто-то перебьет ваш ключ, минимален. Если вы не установите пароль для пользователя root, тогда многие люди скажут, что можно войти в систему как пользователь root. Если вы хотите добавить дополнительный уровень безопасности, отключите root-вход, установите пароль для обычного пользователя (поэтому sudo запрашивает его, когда вы его используете) и используйте аутентификацию с открытым ключом для обычного пользователя для входа.

0

Большое спасибо! Так что я:

  • Создал открытый и закрытый ключи с помощью PuttyGen (SSH-2 RSA, 4096 бит и добавлена ключевая фраза);
  • Загруженный открытый ключ на сервер (до этого для пользователя sudo, а затем для root);
  • Изменен номер порта;
  • PermitRootLogin нет, PubkeyAuthentication да, PasswordAuthentication нет.

В этом случае:

  • Если я пытаюсь войти в систему как пользователь root или sudo, и у меня нет ключа private в Putty, у меня появляется сообщение «Disconnected: нет поддерживаемых методов аутентификации (сервер отправлен: publickey)», пароль не запрашивается;
  • Если я пытаюсь войти в систему как root + key private =, он запрашивает фразу-пароль, но затем появляется ошибка "Сервер отклонил подпись открытого ключа, несмотря на принятие ключа" и "Disconnected";
  • Если я пытаюсь использовать sudo user + key private + правильный пароль = я могу войти

Теперь доступ к SSH должен быть уверен на 99%, верно?

большое спасибо

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .