Zunächst müssen Sie Ihr openssh-Setup auf dem Ubuntu-Server überprüfen: Siehe dieses HowTo .
Dann können Sie diesem Artikel folgen , der hauptsächlich empfiehlt:
$ sudo apt-get install python-setuptools
$ mkdir ~/src
$ cd ~/src
$ git clone git://eagain.net/gitosis.git
$ cd gitosis
$ sudo python setup.py install
$ sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group
--disabled-password \
--home /home/git \
git
Gehen Sie in Ihre /etc/ssh/ssh_config
Datei und fügen Sie git zur Liste der zugelassenen Benutzer hinzu, die sich anmelden können.
Kopieren Sie Ihre id_rsa.pub
Datei irgendwo auf Ihren Server (in unserem Beispiel verwenden wir /tmp
) und führen Sie dann den folgenden Befehl aus:
$ sudo -H -u git gitosis-init < /tmp/id_rsa.pub
Initialized empty Git repository in ./
$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
Testen Sie es auf Ihrem lokalen Computer folgendermaßen:
git clone git@YOUR_SERVER:gitosis-admin.git
Konfigurieren Sie gitosis für ein neues Projekt. Verwenden Sie Ihren bevorzugten Editor, um einen neuen Block unter dem Gitosis-Block zu erstellen. Es sollte so aussehen:
[group myrailsapp]
members = myNameAsInTheRsa.pub
writable = myNewApp
Ein paar Dinge, die Sie im obigen Block beachten sollten.
Stellen Sie zunächst sicher, dass Ihr Name mit dem übereinstimmt, was sich in Ihrem öffentlichen Schlüssel befindet (öffnen Sie also Ihre Datei id_rsa.pub und überprüfen Sie, ob der Name
richtig geschrieben ist).
Sobald Sie fertig sind, schreiben Sie die Änderungen fest und übertragen Sie sie auf den Server.
$ git commit -a -m "created a new repository!"
$ git push
eagain.net
, können Sie Github verwenden.Ihr bester Weg, dies zu tun, wäre, einen SSH-Server zu betreiben und Ihre Benutzer auf die Verwendung
git-shell
für ihre Login-Shell zu beschränken. Sie können einen ssh-Server ordnungsgemäß installieren, indem Sie einen der folgenden Befehle ausführen, sofern dieser noch nicht installiert wurde.oder
Dann füge hinzu
/usr/bin/git-shell
,/etc/shells
indem du tustDann benutze die
git-shell
stattbash
als deine User-Shell. Dies schränkt den Benutzer ein, dass nurgit
Vorgänge ausgeführt werden können, wenn er sich beim Server anmeldet, anstatt dem Benutzer eine vollständige Übersicht zu geben.quelle