##// END OF EJS Templates
ssh: add documentation of SSH support...
Christian Oyarzun -
r7690:e4f27ab7 default
parent child Browse files
Show More
@@ -8,7 +8,7 b' About'
8
8
9 **Kallithea** is a fast and powerful management tool for Mercurial_ and Git_
9 **Kallithea** is a fast and powerful management tool for Mercurial_ and Git_
10 with a built-in push/pull server, full text search and code-review. It works on
10 with a built-in push/pull server, full text search and code-review. It works on
11 HTTP/HTTPS, has a built-in permission/authentication system with the ability
11 HTTP/HTTPS and SSH, has a built-in permission/authentication system with the ability
12 to authenticate via LDAP or ActiveDirectory. Kallithea also provides simple API
12 to authenticate via LDAP or ActiveDirectory. Kallithea also provides simple API
13 so it's easy to integrate with existing external systems.
13 so it's easy to integrate with existing external systems.
14
14
@@ -61,6 +61,7 b' Kallithea features'
61 - Built for speed and performance. You can make multiple pulls/pushes
61 - Built for speed and performance. You can make multiple pulls/pushes
62 simultaneously. Proven to work with thousands of repositories and users.
62 simultaneously. Proven to work with thousands of repositories and users.
63 - Supports HTTP/HTTPS with LDAP, AD, or proxy-pass authentication.
63 - Supports HTTP/HTTPS with LDAP, AD, or proxy-pass authentication.
64 - Supports SSH access with server-side public key management.
64 - Full permissions (private/read/write/admin) together with IP restrictions for
65 - Full permissions (private/read/write/admin) together with IP restrictions for
65 each repository, additional explicit forking, repositories group and
66 each repository, additional explicit forking, repositories group and
66 repository creation permissions.
67 repository creation permissions.
@@ -92,36 +92,58 b' set ``i18n.lang`` to the desired languag'
92 Using Kallithea with SSH
92 Using Kallithea with SSH
93 ------------------------
93 ------------------------
94
94
95 Kallithea currently only hosts repositories using http and https. (The addition
95 Kallithea supports repository access via SSH key based authentication.
96 of ssh hosting is a planned future feature.) However you can easily use ssh in
96
97 parallel with Kallithea. (Repository access via ssh is a standard "out of
97 .. note:: At this moment, repository access via SSH has been tested on Unix
98 the box" feature of Mercurial_ and you can use this to access any of the
98 only. Windows users that care about SSH are invited to test it and report
99 repositories that Kallithea is hosting. See PublishingRepositories_)
99 problems, ideally contributing patches that solve these problems.
100
101 Users and admins can upload SSH public keys (e.g. ``.ssh/id_rsa.pub``) through
102 the web interface. The server's ``.ssh/authorized_keys`` file is automatically
103 maintained with an entry for each SSH key. Each entry will tell ``sshd`` to run
104 ``kallithea-cli`` with the ``ssh-serve`` sub-command and the right Kallithea user ID
105 when encountering the corresponding SSH key.
100
106
101 Kallithea repository structures are kept in directories with the same name
107 To enable SSH repository access, Kallithea must be configured with the path to
102 as the project. When using repository groups, each group is a subdirectory.
108 the ``.ssh/authorized_keys`` file for the Kallithea user, and the path to the
103 This allows you to easily use ssh for accessing repositories.
109 ``kallithea-cli`` command. Put something like this in the ``.ini`` file::
104
110
105 In order to use ssh you need to make sure that your web server and the users'
111 ssh_enabled = true
106 login accounts have the correct permissions set on the appropriate directories.
112 ssh_authorized_keys = /home/kallithea/.ssh/authorized_keys
113 kallithea_cli_path = /srv/kallithea/venv/bin/kallithea-cli
114
115 The SSH service must be running, and the Kallithea user account must be active
116 (not necessarily with password access, but public key access must be enabled),
117 all file permissions must be set as sshd wants it, and ``authorized_keys`` must
118 be writeable by the Kallithea user.
107
119
108 .. note:: These permissions are independent of any permissions you
120 .. note:: The ``authorized_keys`` file will be rewritten from scratch on
109 have set up using the Kallithea web interface.
121 each update. If it already exists with other data, Kallithea will not
122 overwrite the existing ``authorized_keys``, and the server process will
123 instead throw an exception. The system administrator thus cannot ssh
124 directly to the Kallithea user but must use su/sudo from another account.
110
125
111 If your main directory (the same as set in Kallithea settings) is for
126 If ``/home/kallithea/.ssh/`` (the directory of the path specified in the
112 example set to ``/srv/repos`` and the repository you are using is
127 ``ssh_authorized_keys`` setting of the ``.ini`` file) does not exist as a
113 named ``kallithea``, then to clone via ssh you should run::
128 directory, Kallithea will attempt to create it. If that path exists but is
114
129 *not* a directory, or is not readable-writable-executable by the server
115 hg clone ssh://user@kallithea.example.com/srv/repos/kallithea
130 process, the server process will raise an exception each time it attempts to
131 write the ``authorized_keys`` file.
116
132
117 Using other external tools such as mercurial-server_ or using ssh key-based
133 .. warning:: The handling of SSH access is steered directly by the command
118 authentication is fully supported.
134 specified in the ``authorized_keys`` file. There is no interaction with the
135 web UI. Once SSH access is correctly configured and enabled, it will work
136 regardless of whether the Kallithea web process is actually running. Hence,
137 if you want to perform repository or server maintenance and want to fully
138 disable all access to the repositories, disable SSH access by setting
139 ``ssh_enabled = false`` in the correct ``.ini`` file (i.e. the ``.ini`` file
140 specified in the ``authorized_keys`` file.)
119
141
120 .. note:: In an advanced setup, in order for your ssh access to use
142 The ``authorized_keys`` file can be updated manually with ``kallithea-cli
121 the same permissions as set up via the Kallithea web
143 ssh-update-authorized-keys -c my.ini``. This command is not needed in normal
122 interface, you can create an authentication hook to connect
144 operation but is for example useful after changing SSH-related settings in the
123 to the Kallithea db and run check functions for permissions
145 ``.ini`` file or renaming that file. (The path to the ``.ini`` file is used in
124 against that.
146 the generated ``authorized_keys`` file).
125
147
126
148
127 Setting up Whoosh full text search
149 Setting up Whoosh full text search
General Comments 0
You need to be logged in to leave comments. Login now