From 650750cae5039d1a0ece091fe84e7bd2a17eca00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Reynolds?= Date: Sun, 11 Nov 2012 21:17:08 -0300 Subject: Ensure we start with some pubkeys --- Makefile | 26 ++++++++++++++++++++------ README.markdown | 6 ++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 06be006..f3b7afe 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +SHELL=/bin/bash # The git user home, from where repos are served PREFIX=/srv/git # The git user @@ -7,18 +8,31 @@ GIT_SHELL=/usr/bin/git-shell # The hacking.git clone HACKERS=$(shell pwd) +# Add all of your pubkeys +# TODO this can fail if you don't have any keys (why don't you) +bootstrap: + cat $(HOME)/.ssh/id_{rsa,ecdsa,dsa}.pub >>authorized_keys 2>/dev/null || true + git commit authorized_keys -m "Bootstraping hacking.git" ; \ + # Create the user user: useradd --home $(PREFIX) \ - --shell $(GIT_SHELL) \ - --create-home \ - --system \ - --user-group \ - $(USER) + --shell $(GIT_SHELL) \ + --create-home \ + --system \ + --user-group \ + $(USER) + +# Check if we have at least a key +check: + if [ $(shell wc -l authorized_keys | cut -d' ' -f1) -eq 0 ]; then \ + echo 'Add at least your key to authorized_keys!'; \ + exit 1 ;\ + fi # Create the hackers.git bare repo and clone as .ssh # Then create needed symlinks and add hooks to hackers.git -install: +install: check cd $(PREFIX); \ git clone --bare $(HACKERS) hackers.git && \ git clone hackers.git .ssh && \ diff --git a/README.markdown b/README.markdown index 328a518..949f2d7 100644 --- a/README.markdown +++ b/README.markdown @@ -15,6 +15,12 @@ mirror one, etc.) using ssh to connect to the repository server. ## Install +Clone hackers.git somewhere and add yours and other people's SSH pubkeys (at +least yours) to the authorized\_keys file, then commit. + +This step can be done in a single step with `make bootstrap` (or let the next +step do it). If you don't you won't be able to login later! + Run `make PREFIX=/srv/git` as root, where *PREFIX* is the git root. Check the Makefile itself to see other options. -- cgit v1.2.3