Вопрос или проблема
Моя установка gitolite вдруг начала запрашивать пароль, я проверил файл /var/log/secure
и нашел это.
sshd[9071]: Пользователь git не допускается, так как аккаунт заблокирован
sshd[9072]: input_userauth_request: недопустимый пользователь git
После быстрого поиска я прочитал, что решение заключается в следующем
sudo passwd -u git
Но это дало следующий ответ:
Разблокировка пароля для пользователя git.
passwd: Предупреждение: разблокированный пароль будет пустым.
passwd: Небезопасная операция (используйте -f для принудительного выполнения)
Я использовал -f для проверки, и да, это решило проблему. Но есть ли какой-либо недостаток в безопасности при этом? Я не хочу, чтобы у этого аккаунта был пароль, только использовать аутентификацию по ключам.
Недостаток безопасности заключается в том, что теперь у вашего пользователя git
нет пароля, и любой может войти в него без пароля (или ключа)!
Чтобы решить проблему, аккаунт не должен быть заблокирован, но должен иметь пароль, даже если никто никогда не использует этот пароль. Установите случайный пароль для аккаунта и убедитесь, что ssh-ключи работают исправно.
Проверьте, есть ли у вас sshd_config
и добавьте
AuthorizedKeysFile /var/opt/gitlab/.ssh/authorized_keys
Это сработало для меня. В противном случае он не знает, где искать ваш ключ, который вы ввели в веб-интерфейсе
Ответ или решение
Когда возникла проблема с тем, что система Gitolite начала запрашивать пароль для пользователя git
, несмотря на наличие действительных SSH-ключей, необходимо разобраться в ряде потенциальных причин и возможных решений. Рассмотрим ситуацию более детально.
Проблема
При попытке аутентификации вы получили сообщение из логов (файл /var/log/secure
) о том, что аккаунт пользователя git
заблокирован, что вызвало необходимость вводить пароль. Действия по разблокировке аккаунта привели к предупреждению о том, что разблокированный пароль будет пустым, что может серьезно повлиять на безопасность.
Анализ запроса пароля
-
Заблокированный аккаунт: Ваша система сообщила, что аккаунт пользователя
git
заблокирован. Из-за этого SSH-сервер (sshd) не позволяет аутентификацию, что и вызывает запрос пароля. -
Проблемы с SSH-ключами: Если SSH-ключи неправильно настроены, то сервер также может запрашивать пароль, даже если ключи действительны. Важно убедиться, что SSH-ключи находятся в нужной директории и правильно указаны в настройках.
Решение
-
Разблокировка аккаунта: Вы правильно использовали команду
sudo passwd -u git
, чтобы разблокировать аккаунт. Однако, указанное вами предупреждение говорит о том, что разблокировка привела к тому, что пароль стал пустым, что создает уязвимость. -
Установка случайного пароля: Рекомендуется установить случайный пароль для пользователя
git
, даже если он не будет использоваться. Это увеличит безопасность и предотвратит возможность доступа к этому аккаунту без аутентификации. -
Настройка SSH: Убедитесь, что файл
sshd_config
правильно настроен для поиска ваших SSH-ключей. Добавьте строку:AuthorizedKeysFile /var/opt/gitlab/.ssh/authorized_keys
Это гарантирует, что сервер будет знать, где искать ключи.
Заключение
Если у вас есть возможность ограничить доступ к аккаунту git
, вам следует это сделать. Это может включать в себя использование дополнительных настроек файлы конфигурации SSH или ограничения по IP-адресам.
Таким образом, для правильной работы Gitolite и предотвращения проблем с запросом пароля, следуйте этим рекомендациям:
- Разблокируйте аккаунт с установкой случайного пароля.
- Убедитесь, что SSH-ключи правильно настроены и доступны для SSH-сервера.
- Проверьте настройки в файле
sshd_config
.
Эти шаги помогут избежать проблем в будущем и позволят вашему серверу работать безопасно и без лишних запросов пароля.