Ubuntu требует имя пользователя и пароль

Обновлено: 22.11.2024

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

В этом учебном пособии вы познакомитесь с защитой паролем активов на веб-сервере Apache, работающем в Ubuntu 18.04, чтобы обеспечить дополнительную безопасность вашего сервера.

Предпосылки

Для выполнения этого руководства вам потребуется доступ к серверу Ubuntu 18.04.

Кроме того, перед началом работы вам потребуется следующая настройка:

Пользователь sudo на вашем сервере: вы можете создать пользователя с правами sudo, следуя руководству по первоначальной настройке сервера Ubuntu 18.04.

Веб-сервер Apache2: если вы еще не настроили его, руководство по установке веб-сервера Apache в Ubuntu 18.04 поможет вам.

Сайт, защищенный с помощью SSL. То, как вы его настроите, зависит от того, есть ли у вашего сайта доменное имя.

  • Если у вас есть доменное имя, вы можете защитить свой сайт с помощью Let’s Encrypt, который предоставляет бесплатные доверенные сертификаты. Чтобы настроить это, следуйте инструкциям Let’s Encrypt для Apache.
  • Если у вас нет домена и вы используете эту конфигурацию только для тестирования или личного использования, вместо этого вы можете использовать самозаверяющий сертификат. Это обеспечивает тот же тип шифрования, но без проверки домена. Следуйте руководству по самоподписанному SSL для Apache, чтобы настроить его.

Когда все это будет установлено, войдите на свой сервер как пользователь sudo и продолжите ниже.

Шаг 1 — Установка пакета утилит Apache

Давайте начнем с обновления нашего сервера и установки необходимого пакета. Чтобы выполнить это руководство, мы будем использовать утилиту htpasswd, часть пакета apache2-utils, для создания файла и управления именем пользователя и паролями, необходимыми для доступа к ограниченному контенту.

Установив его, мы получили доступ к команде htpasswd.

Шаг 2 — Создание файла паролей

Команда htpasswd позволит нам создать файл паролей, который Apache сможет использовать для аутентификации пользователей. Для этой цели мы создадим скрытый файл с именем .htpasswd в нашем каталоге конфигурации /etc/apache2.

При первом использовании этой утилиты нам нужно добавить параметр -c для создания указанного файла-пароля. Мы указываем имя пользователя (в данном примере sammy) в конце команды для создания новой записи в файле:

Вас попросят ввести и подтвердить пароль для пользователя.

Оставьте аргумент -c для любых дополнительных пользователей, которых вы хотите добавить, чтобы не перезаписать файл:

Если мы просмотрим содержимое файла, мы увидим имя пользователя и зашифрованный пароль для каждой записи:

Теперь у нас есть пользователи и пароли в формате, который может прочитать Apache.

Шаг 3. Настройка аутентификации по паролю Apache

На этом шаге нам нужно настроить Apache для проверки этого файла перед предоставлением нашего защищенного контента. Мы можем сделать это одним из двух способов: либо непосредственно в файле виртуального хоста сайта, либо поместив файлы .htaccess в каталоги, для которых необходимо ограничение. Как правило, лучше всего использовать файл виртуального хоста, но если вам нужно разрешить пользователям без полномочий root управлять своими ограничениями доступа, проверьте ограничения в системе контроля версий вместе с веб-сайтом или уже имеете веб-приложение, использующее файлы .htaccess для других целей. , проверьте второй вариант.

Выберите наиболее подходящий вариант.

Вариант 1. Настройка контроля доступа в определении виртуального хоста (предпочтительно)

Первый вариант — отредактировать конфигурацию Apache и добавить защиту паролем в файл виртуального хоста. Как правило, это повышает производительность, поскольку позволяет избежать затрат на чтение распределенных файлов конфигурации. Для этого параметра требуется доступ к конфигурации, который не всегда доступен, но рекомендуется, если у вас есть доступ.

Начните с открытия файла виртуального хоста, к которому вы хотите добавить ограничение. В нашем примере мы будем использовать файл default-ssl.conf, который содержит виртуальный хост по умолчанию, установленный через пакет apache Ubuntu. Откройте файл в текстовом редакторе командной строки, таком как nano:

Внутри, без комментариев, файл должен выглядеть примерно так:

Аутентификация выполняется для каждого каталога. Чтобы настроить аутентификацию, вам нужно указать каталог, который вы хотите ограничить, с помощью блока. В нашем примере мы ограничим весь корень документа, но вы можете изменить этот список, чтобы указать только определенный каталог в веб-пространстве:

В этом блоке каталогов укажите, что мы настраиваем обычную аутентификацию.Для AuthName выберите имя области, которое будет отображаться пользователю при запросе учетных данных. Используйте директиву AuthUserFile, чтобы указать Apache на созданный нами файл паролей. Наконец, сделайте требование, чтобы только действительный пользователь мог получить доступ к этому ресурсу, что означает, что любой, кто может подтвердить свою личность с помощью пароля, будет допущен в:

Сохраните и закройте файл, когда закончите. Если вы используете nano, вы можете сделать это, нажав CTRL+X, затем Y и ENTER .

Перед перезапуском веб-сервера вы можете проверить конфигурацию с помощью следующей команды:

Если все в порядке и на выходе вы получаете Syntax OK, вы можете перезапустить сервер, чтобы реализовать свою политику паролей. Поскольку systemctl не отображает результаты всех команд управления службами, мы будем использовать статус, чтобы убедиться, что сервер работает:

Теперь указанный вами каталог должен быть защищен паролем.

Вариант 2. Настройка контроля доступа с помощью файлов .htaccess

Apache может использовать файлы .htaccess, чтобы разрешить установку определенных элементов конфигурации в каталоге содержимого. Поскольку Apache должен перечитывать эти файлы при каждом запросе, связанном с каталогом, что может негативно сказаться на производительности, вариант 1 предпочтительнее, но если вы уже используете файл .htaccess или вам нужно разрешить пользователям без полномочий root управлять ограничениями, файлы . htaccess имеют смысл.

Чтобы включить защиту паролем с помощью файлов .htaccess, откройте основной файл конфигурации Apache в текстовом редакторе командной строки, таком как nano:

Найдите блок для каталога /var/www, в котором находится корень документа. Включите обработку .htaccess, изменив директиву AllowOverride в этом блоке с None на All :

Сохраните и закройте файл, когда закончите. Если вы используете nano, вы можете сделать это, нажав CTRL+X, затем Y и ENTER .

Далее нам нужно добавить файл .htaccess в каталог, который мы хотим ограничить. В нашей демонстрации мы ограничим весь корень документа (весь веб-сайт), который находится в /var/www/html , но вы можете поместить этот файл в любой каталог, где вы хотите ограничить доступ:

В этом файле укажите, что мы хотим настроить обычную аутентификацию. Для AuthName выберите имя области, которое будет отображаться пользователю при запросе учетных данных. Используйте директиву AuthUserFile, чтобы указать Apache на созданный нами файл паролей. Наконец, нам потребуется действительный пользователь для доступа к этому ресурсу, что означает, что любой, кто может подтвердить свою личность с помощью пароля, будет допущен в:

Сохраните и закройте файл. Перезапустите веб-сервер, чтобы защитить паролем весь контент в каталоге или ниже с помощью файла .htaccess, и используйте статус systemctl, чтобы проверить успех перезапуска:

Теперь указанный вами каталог должен быть защищен паролем.

Шаг 4 — Подтверждение аутентификации по паролю

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

Если вы введете правильные учетные данные, вам будет разрешен доступ к содержимому. Если вы введете неправильные учетные данные или нажмете «Отмена», вы увидите страницу с ошибкой «Не авторизовано»:

Заключение

Поздравляем! Если вы следовали инструкциям, вы настроили базовую аутентификацию для своего сайта.

С помощью конфигурации Apache и .htaccess можно сделать гораздо больше. Чтобы узнать больше о гибкости и мощности конфигурации Apache, воспользуйтесь одним из следующих руководств:

Для лучшего понимания работы с основным файлом конфигурации прочитайте раздел Знакомство с важными файлами и каталогами Apache в нашем руководстве по установке Apache.

Узнайте больше о файлах виртуального хоста в разделе Как настроить виртуальные хосты Apache в Ubuntu 16.04

Узнайте о переписывании URL-адресов, настройке страниц ошибок, таких как сообщение «Не авторизовано» выше, или включении общих элементов на все ваши страницы с включением на стороне сервера в нашем руководстве «Как использовать файл .htaccess».

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.

Закрыт 1 год назад.

Ubuntu снова и снова запрашивает пароль. У меня такая же проблема. Когда я ввожу свой пароль во время загрузки, он показывает экран с загрузкой системы на долю секунды и возвращает меня к экрану ввода пароля

Нажмите ctrl+alt+f1, после входа в командную строку попробуйте создать файл или папку, чтобы убедиться, что проблема не в нехватке места на диске.

5 ответов 5

Когда на экране диспетчера отображения появится экран ввода пароля, нажмите Ctrl + Alt + F1 . После этого вы попадете в консоль. Там введите логин, а затем пароль.

пройти через live USB, при запуске нажал восстановить систему - тоже помогает

Ctrl + Alt + F1 не работало в моем случае с Ubuntu 18.04 в VirtualBox, но Ctrl + F2 приводило меня к командной строке.

У меня Ubuntu 19.10, и изменение переменной PATH в /etc/environment вызывало повторный запрос пароля, когда я хотел перезагрузить свою машину. Я использовал другую переменную среды в своей переменной PATH, и Ubuntu это не понравилось.

Итак, как писал Артур, я нажал Ctrl + F2, когда он спросил пароль, вошел в систему, понял проблему с echo $PATH , отредактировал переменную PATH с помощью nano /etc/environment , заменил другую переменную в PATH ее значением. , перезагрузил машину, и теперь все работает.

Я столкнулся с той же проблемой на своем ноутбуке и решил ее, выполнив следующие действия:

  1. Нажмите CTRL Alt F1, и откроется консоль.
  2. Введите свое имя пользователя и нажмите Enter .
  3. Введите имя пользователя и пароль и нажмите Enter .
  4. Выполните команду: mv .Xauthority .Xauthority.bak
  5. Выполнить команду: выйти
  6. Нажмите CTRL Alt F7 для перехода в графический режим.
  7. Попробуйте войти, введя свой пароль.

У меня была такая же проблема на Ubuntu 16.04LTS 64bit. Причиной этого был мой драйвер nvidia. Я не знаю подробностей. Однако удаление пакета nvidia-340 устранило проблему (apt-get remove nvidia-340).

Здравствуйте, я установил Ubuntu на ноутбук моего отца, так как Windows была медленной, он хочет использовать ее только для работы в Интернете.
Он работает за границей, и я не могу много чего попробовать, поэтому прошу (надеюсь) простого совета.

проблема: когда он хочет подключиться к Wi-Fi, который есть у него там, где он живет, для этого требуется имя пользователя и пароль, а у него нет имени пользователя, ему не нужно было, когда он пытался подключиться через Android или Windows. Я посоветовал ему попробовать разные настройки, сменить корпоративный wpa2 (? или бизнес, не знаю) на личный, но даже когда он избавился от параметра имени пользователя, он не подключится к Интернету.

Кондоблок

Известный участник

Поскольку мы не уверены в точной ситуации, хотелось бы сообщить несколько деталей.

Предоставляет ли Wi-Fi интернет-провайдер (интернет-провайдер). или другое?

Если имя пользователя и пароль запрашиваются поставщиком Wi-Fi (ISP), то они должны быть предоставлены вашему отцу провайдером

С другой стороны, если Ubuntu запрашивает имя пользователя и пароль, он может создать собственное имя пользователя и пароль. УБЕДИТЕСЬ, ЧТО ОН ЗАПИШЕТ ИХ.

Кондоблок. Австралийская глубинка :: LINUX — ЭТО ОТВЕТ. LINUX MINT используется здесь ИСКЛЮЧИТЕЛЬНО.
duckduckgo дает лучшие технические ответы, у него нет причин не делать этого
Живите просто. Любить щедро. Заботьтесь глубоко. Говорите ласково…. Особенно во времена C19.
Говорят, что время лечит все раны. Я не согласен. Раны остаются. Время — разум, оберегающий свой рассудок — покрывает их шрамами, и боль уменьшается, но никогда не проходит. Роуз Кеннеди.

проблема

Новый участник

Привет, спасибо за ответ.
Ну, это запрашивается сетевыми настройками ubuntu (как на картинке)
Я знаю, что он пробовал несколько случайных имен пользователей, но это не сработало.


Возможно ли, что для разных ОС требуются разные данные? как я уже упоминал, он подключен к Wi-Fi на своем телефоне без имени пользователя, и это работает

Кондоблок

Известный участник

Внимательно следуйте этим инструкциям.

Кондоблок. Австралийская глубинка :: LINUX — ЭТО ОТВЕТ. LINUX MINT используется здесь ИСКЛЮЧИТЕЛЬНО.
duckduckgo дает лучшие технические ответы, у него нет причин не делать этого
Живите просто. Любить щедро. Заботьтесь глубоко. Говорите ласково…. Особенно во времена C19.
Говорят, что время лечит все раны. Я не согласен. Раны остаются. Время — разум, оберегающий свой рассудок — покрывает их шрамами, и боль уменьшается, но никогда не проходит. Роуз Кеннеди.

Кондоблок

Известный участник

Просто запоздалая мысль. поднесите ноутбук к маршрутизатору/модему и подключите его напрямую через кабель Ethernet.Надеюсь, это расскажет Ubuntu то, что ему нужно знать.

Кондоблок. Австралийская глубинка :: LINUX — ЭТО ОТВЕТ. LINUX MINT используется здесь ИСКЛЮЧИТЕЛЬНО.
duckduckgo дает лучшие технические ответы, у него нет причин не делать этого
Живите просто. Любить щедро. Заботьтесь глубоко. Говорите ласково…. Особенно во времена C19.
Говорят, что время лечит все раны. Я не согласен. Раны остаются. Время — разум, оберегающий свой рассудок — покрывает их шрамами, и боль уменьшается, но никогда не проходит. Роуз Кеннеди.

f33dm3bits

Золотой участник

Если вы нажмете «Безопасность», вы должны открыть раскрывающееся меню, вместо этого выберите WPA и WPA2 Personal. Затем вам нужно ввести пароль только для Wi-Fi, к которому вы пытаетесь подключиться. Enterprise больше подходит для более сложных настроек, когда ваше соединение шифруется и проверяется с использованием сертификатов и других дополнительных функций для конфигураций Enterprise.

**edit**
Похоже, вы уже пробовали WPA и WPA2 Personal, которые я пропустил. Можете ли вы попробовать снова подключиться к Wi-Fi с опцией «Личный». Что именно тогда происходит? Он говорит, что подключен, но затем вы не можете получить доступ к Интернету или он также отказывается подключаться к Wi-Fi? Просто для вашего понимания Wi-Fi — это локальная сеть, которая затем преобразуется в IP-адрес, который ваш интернет-провайдер назначил вашему маршрутизатору, затем оттуда ваш маршрутизатор направляется в сеть вашего интернет-провайдера, а оттуда в Интернет. Вы можете подключиться к Wi-Fi, но все равно не иметь доступа к Интернету.

"Все сначала сложно, а потом легко"
"Ничто стоящее не бывает легким"

проблема

Новый участник

Просто запоздалая мысль. поднесите ноутбук к маршрутизатору/модему и подключите его напрямую через кабель Ethernet. Надеюсь, это расскажет Ubuntu то, что ему нужно знать.

да, интернет-кабель был первым, что пришло мне в голову, к счастью, он у него есть, поэтому он попытался, но это не сработало

Если вы нажмете «Безопасность», вы должны открыть раскрывающееся меню, вместо этого выберите WPA и WPA2 Personal. Затем вам нужно ввести пароль только для Wi-Fi, к которому вы пытаетесь подключиться. Enterprise больше подходит для более сложных настроек, когда ваше соединение шифруется и проверяется с использованием сертификатов и других дополнительных функций для конфигураций Enterprise.

**edit**
Похоже, вы уже пробовали WPA и WPA2 Personal, которые я пропустил. Можете ли вы попробовать снова подключиться к Wi-Fi с опцией «Личный». Что именно тогда происходит? Он говорит, что подключен, но затем вы не можете получить доступ к Интернету или он также отказывается подключаться к Wi-Fi? Просто для вашего понимания Wi-Fi — это локальная сеть, которая затем преобразуется в IP-адрес, который ваш интернет-провайдер назначил вашему маршрутизатору, затем оттуда ваш маршрутизатор направляется в сеть вашего интернет-провайдера, а оттуда в Интернет. Вы можете подключиться к Wi-Fi, но все равно не иметь доступа к Интернету.


Поэтому после изменения предприятия WPA&WPA 2 на личное и ввода пароля, а затем нажатия кнопки «Подключиться» ничего не происходит. Он всегда просто показывает все доступные сети.

Аутентификация для доступа к репозиториям исходного кода, таким как GitHub, GitLab, Bitbucket и т. д., имеет решающее значение. Все эти репозитории основаны на git. Однако при работе с частными экземплярами этих репозиториев очень раздражает и утомляет ввод учетных данных при каждой попытке взаимодействия с кодом.

Появились обходные пути или способы избавиться от ввода учетных данных, а именно логина-пароля, каждый раз для взаимодействия с репозиториями. Давайте рассмотрим эти варианты и кратко обсудим их.

Во-первых, при клонировании репозитория вы можете ввести имя пользователя и пароль для ссылки на клонирование. Чтобы клонировать репозиторий, перейдите в репозиторий, щелкните Код , а затем скопируйте ссылку, щелкнув значок копирования в буфер обмена, как показано ниже:

Скопированная ссылка выглядит следующим образом:

Чтобы клонировать репозиторий без аутентификации по имени пользователя и паролю, введите эти значения в ссылку следующим образом:

Если вы уже клонировали или извлекли репозиторий, перейдите к файлу path-to-repo/.git/config и обновите URL-адрес соответственно с именем пользователя и паролем.

Как видите, информация об учетных данных отображается в истории команд, а также не шифруется в файле, а защищена только обычными правами пользователя на файл.

Во-вторых, вы можете использовать credential.helper для хранения или кэширования учетных данных. Опция store сохраняет учетные данные в файле с именем ~/.git-credentials для каждого контекста URL. Чтобы активировать эту опцию,

После этого при первом взаимодействии с репозиторием учетные данные извлекаются от пользователя и сохраняются следующим образом:

Когда файл ~/.git-credentials проверены, учетные данные хранятся в незашифрованном виде. Файл защищен только стандартными правами пользователя.

Вы также можете хранить учетные данные в памяти в течение определенного времени. Чтобы активировать это;

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

Единица времени для кеша — секунды, по умолчанию — 15 минут. По истечении этого времени git заставит вас снова ввести имя пользователя и пароль. Вы можете перезаписать значение по умолчанию следующим образом, например, для одного дня ( 1 день = 24 часа × 60 минут × 60 секунд = 86400 секунд );

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

В-третьих, токен можно создать в репозитории и использовать для аутентификации. Чтобы создать токен, выполните следующие действия:

Читайте также: