Назад | Перейти на главную страницу

псевдоним «git» ssh для входа в «gitolite»

Я устанавливаю гитолит из пакетов CentOS для моего клиента. Пакет создает gitolite user, который будет явно виден во время операции "git clone". Клиент хочет использовать «git», а не «gitolite», на случай, если позже мы перейдем к чему-то более интересному. Я не очень хорошо знаком с CentOS, поэтому не хочу пытаться собрать пакет самостоятельно из исходников. Мне интересно, есть ли способ сделать одно из следующего:

  1. Обманите sshd, чтобы он трактовал git как gitolite.
  2. Каким-то образом "псевдоним" нового имени пользователя git должен быть таким же во всех отношениях, что и существующее имя пользователя gitolite (возможно, с помощью некоторых сложных комбинаций useradd).
  3. Переименуйте имя пользователя "gitolite" в "git", не расстраиваясь позже yum update операции
  4. Что-то еще, о чем я не думал

Буду признателен за подробные инструкции или указатели.

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

[ec2-user@ip-10-170-94-162 ~]$ sudo useradd -m foo
[ec2-user@ip-10-170-94-162 ~]$ getent passwd foo
 foo:x:500:502::/home/foo:/bin/bash
[ec2-user@ip-10-170-94-162 ~]$ sudo useradd -o -d/home/foo -u500 -g502 -s/bin/bash -M foo2
[ec2-user@ip-10-170-94-162 ~]$ getent passwd foo2
 foo2:x:500:502::/home/foo:/bin/bash

-o позволяет дублировать uid, -d устанавливает домашний каталог, -u устанавливает uid, -g устанавливает гид, -s устанавливает оболочку, -M говорит, что не создавайте домашний каталог. Хотя я не уверен, как бы вы это марионтили.

то, что вы можете попробовать на стороне клиента, - это отредактировать файл пользователей ~ / .ssh / config и добавить несколько строк на основе этого

Host yourservername.com
user gitolite

таким образом просто клон git как

git clone yourservername.com:path/to/git/repo.git

в будущем для изменения имени пользователя потребуется только изменение файла ~ / .ssh / config локально на компьютере пользователя

Чтобы сделать №1, вы можете попробовать создать раздел в вашем файле ~ / .ssh / config.

Что-то вроде этого:

host servername
     user gitolite
     hostname server.example.com
     port 22

Тогда вы можете сделать что-то вроде следующего, и вам не придется связываться с именами пользователей.

git push servername

Все это при условии, что вы используете OpenSSH в качестве своего ssh-клиента.

Попробуйте №2.

Создайте пользователя «git» с тем же UID, домашним каталогом и т. Д., Что и у «gitolite». Не мое любимое занятие, но оно должно работать.

Я делал это раньше на компьютерах с Ubuntu, и это работает, но наличие у нескольких учетных записей одного UID всегда казалось мне немного неприятным.

Недавно я установил GitoLite и попробовал метод пакета. Честно говоря, это было грязно.

Моя вторая попытка заключалась в том, чтобы создать обычного пользователя, а затем установить вручную, следуя инструкциям метода без полномочий root. Проще и проще. Я тоже хотел имя пользователя "Git" и использовал его.

Итак, мое предложение, удалите установку RPM и следуйте методу без полномочий root. :-)

(https://github.com/sitaramc/gitolite/blob/pu/doc/1-INSTALL.mkd для инструкций, но если вы клонировали репо, оно у вас уже есть)

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

Добавьте NOPASSWD в sudoers, чтобы остановить двойные запросы.

Требуется sudo и управляемый марионеткой пользователь git.

Когда вы используете "корневой" метод установки, вы должны иметь возможность запускать gl-system-install от имени пользователя root, а затем запускать gl-setup как любой user (а по сути любое количество пользователей) так что все они могут гитолить "пользователями хостинга".

Я не могу представить, что RPM уберет или каким-то образом отключит эту врожденную функцию.

Итак, я отвечу: не беспокойтесь о UID и т. Д. Просто установите RPM, добавьте пользователя git, su - git, затем gl-setup yourname.pub. Должен это сделать.