add minimal git server blog

This commit is contained in:
ktyl 2022-04-16 19:53:15 +01:00
parent 60653dcdd8
commit 0ba0d1197f
1 changed files with 62 additions and 0 deletions

62
blogs/git/git-server.md Normal file
View File

@ -0,0 +1,62 @@
# create a git user
on debian, `sudo adduser git`
switch to git user with `sudo su -l git`
create a `.ssh` dir in the git user's home dir and make it only accessible by the git user
```
mkdir ~/.ssh
chmod 700 ~/.ssh
```
create an `authorized_keys` file in the `.ssh` folder, and make it accessible only by the git user
```
touch .ssh/authorized_keys
chmod 600 `.ssh/authorized_keys`
```
create a private/public key pair locally to authenticate a user on a machine to connect to the remote server
```
ssh-keygen -t rsa
```
and finally copy it into the (remote) git user's `.ssh/authorized_keys`, for example using `ssh-copy-id` or giving the public key to the server administrator.
# creating bare git repositories
create directories within git's home dir (nested paths are allowed) with the `.git` extension, for example `my-projects/my-repo.git` or just `my-repo.git`.
```
git init --bare repo.git
```
there now exists an empty git repository on the server.
the remote can now be added to a local repository
```
git remote add origin git@server:my-repo.git
git push -u origin main
```
# connecting using the key
add an entry to your local `.ssh/config`
```
Host myhost
HostName example.com
User git
IdentityFile ~/.ssh/id_rsa
```
and connect with
```
ssh myhost
```