summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md101
1 files changed, 0 insertions, 101 deletions
diff --git a/README.md b/README.md
deleted file mode 100644
index b2935b8..0000000
--- a/README.md
+++ /dev/null
@@ -1,101 +0,0 @@
1AnonymousSSH
2------------
3
4
5
6
7
8
9WHAT IT DOES
10------------
11
12This repository contains the code to share itself (the repository)
13through Git-over-SSH.
14
15It also contains the code to listen for changes sent to itself through
16Git-over-SSH.
17
18
19
20
21
22
23HOW IT WORKS
24------------
25
26Git contains a program `git-receive-pack` which implements a git
27protocol server. The `git-receive-pack` expects to be launched as an SSH
28server "ForcedCommand" in a configuration that protects the server from
29untrustworthy users.
30
31Normally, the SSH server only permits users who have already uploaded
32their public keys to the server. It assumes that access should be closed
33to new users.
34
35Installing this code reverses that assumption, granting open access to
36unrecognized users. This is made safe by limiting write access to a
37GIT_NAMESPACE over which the user proves global mathematical ownership with
38their SSH client key. This means that the user cannot overwrite anyone else's
39data.
40
41The user's uploaded data is still saved and is ready to be be merged into the
42main repository manually, or even automatically.
43
44
45
46
47
48HOW TO INSTALL
49--------------
50
51Run:
52```
53 make install
54```
55
56This installs the `AnonymousAccessCommand` in the current user's home
57directory.
58
59Then, if sudo access is available, it enables anonymous access by
60editing the system `OpenSSH` configuration.
61
62
63
64
65
66
67NON-ROOT INSTALLATION
68---------------------
69
70If sudo access is not available, you can install to a different
71location:
72
73```
74 make SSH_CONFIG_DIR=.config/ssh \
75 SSHD_CONFIG_DIR=.config/ssh/config.d \
76 SSH_LIB_DIR=.local/lib/ssh \
77 install
78```
79
80Then you will need to run `OpenSSH` on a non-default port (the default
81port requires root access).
82
83
84
85
86
87
88ALTERNATIVE LOCATION OF `AnonymousAccessCommand`
89------------------------------------------------
90
91It is also possible to choose the location of the
92`AnonymousAccessCommand` itself:
93
94```
95 make USER_SSH_CONFIG_DIR=$HOME/.config/ssh \
96 install
97```
98
99First you would have to make the contents of the installed file
100`AuthorizedKeysCommand` vary according to that `Makefile` paremeter, by
101editing `Makefile`.