Create a local Git repository on Linux using SSH

Have you ever found yourself in a situation where you had to deploy a quick git repository on a machine on your LAN? If you’re a developer, chances are you’ve been given this task many times.

Luckily, you don’t really have to depend on a bunch of overly complicated software packages or third-party tools to make this happen. Of course, if you want a nice GUI to make life much easier for everyone who will contribute to your development project, you can turn to a platform like Gitea. But if you prefer the simplicity and ease of deployment that comes with the command line, you’re going to want to try this method. It may not have all the bells and whistles of web options, but it gets the job done reliably and quickly.

So how do you deploy this magical repository? With the help of git and SSH. Both of these tools are available for free for all Linux distributions, so you don’t have to worry about searching or paying for the tools.

Sounds like a winner? I thought so. Make sure that this happens.

All the things you will need

For this to work, you will need a Linux distribution to host the repository, another machine to use the repository, and a user with sudo privileges. I will demo on Ubuntu Server 22.04 but I will also show how to install the software on a RHEL/Fedora based Linux distribution.

Ready? I thought so.

Install the necessary software

The first thing we are going to do is install the necessary software. The only two packages you need are SSH and Git. Most likely, SSH is already installed (as is the case with almost every Linux distro on the planet). Git, on the other hand, may not be found on your machine. So, to install Git on an Ubuntu-based distribution, you need to run the command:

If you are on a Red Hat Enterprise Linux/Fedora based distro, this command would be:

One thing to keep in mind is that you need to install git on both the machine hosting the repository and the one using the repository.

Create a special user

We will now create a special account that will be used for the purposes of this repository. For this, the command will be the same, whatever distribution you are using, and is done on the machine hosting the repository. To create the user, run the command:

The adduser command should ask you to set a password for the user. Otherwise, do it with:

Switch to this new user with:

Navigate to the git user’s home directory with:

Now we need to create an .ssh directory with the command:

Give this directory the appropriate permissions with:

The next step is to create the authorized_keys file with the command:

Give this file the required permissions with:

Create an SSH key on the local machine and copy it to the repository machine

Next, we need to create an SSH key on the machine that you will use to access the repository. To do this, connect to the client machine and run the command:

Once the key is generated, you will need to copy the contents of the key. First view the key with:

Where USER is your username.

Back on the machine hosting the repository, open the authorized_keys file with:

Paste the contents of the SSH key into this file and save/close it.

Create the new repository

On the machine hosting the repository, create a new directory with the command:

Navigate to this new directory with the command:

Create a new project folder with a command like this:

Of course, you can name the folder whatever you like.

Access this folder with:

Initialize the repository with:

Clone the new repository

Return to the client machine and clone the new repository with the command:

Where SERVER is the IP address of the server hosting the repository and PROJECT is the name of the project folder.

You will be prompted to enter the SSH key password. After successful authentication, the contents of the project folder will be extracted to your local computer.

You can now add your first commit (let’s add a README) and push the changes back to the repository with:

So. You have just created a quick Git repository. If you need to give other users access to the repository, just ask them to create SSH keys on their machines and copy them to the server the same way you did above.

Congratulations on setting up a Git repository and having it up and running in minutes.

Band Created with Sketch.

Comments are closed.