Repetition of the same task is boring and painful for programmers like us. Isn't it?

One of such tasks is interactive with GitHub'south private repository. What's about it? Yous know what it is. And you lot are searching for ways to resolve it and landed on this article. You volition finish searching after reading this commodity.

And so, hither we are going to talk virtually accessing GitHub private repository without a password. Without further ado, let's get started.

At that place are two ways to access whatever GitHub repository. They are HTTPS andSSH. Most of you are usingHTTPS. But, now y'all come to know that it'southward not an efficient way to use the HTTPS method for cloning the private repositories.

Accessing includes cloning, pushing, pulling, etc..; anything that's related to updating our repository in the remote.

There is no problem when it comes to accessing the public repositories. Just, we need to authenticate ourselves while accessing a private repository. There are different ways to authenticate ourselves.

Let's start with the virtually familiar one…

If using HTTPS

You should probably know most the HTTPS method and looking for others. Let'southward chop-chop see how to access a individual repository using it.

  • Re-create your individual repository link.
GitHub Private Repository
GitHub Private Repository
  • Open the terminal or cmd in your machine.
  • Paste the command git clone link to clone the private repository.
  • Replace the linkwith your private repository link.
  • Information technology'll ask united states of america to authenticate ourselves. So, we have to enter our GitHub credentials.
  • Showtime, it'll ask the states to enter our GitHub username. Enter your GitHub username and hit Enter.
Authentication Username
Authentication Username
  • Now, we need to enter the countersign. Type your GitHub password and striking Enter.
Authentication Password
Hallmark Password

That's it; we have cloned the private repository using the HTTPSmethod. Now, update something in the repository, commit and push them to remote.

What did you notice?

It's again request for the hallmark.

Push Authentication
Push Authentication
Push Authentication
Push Authentication

Isn't it a boring and heavy task to enter credentials every time nosotros interact with the private repository?

Yeah, it is.

Nosotros tin't enter our GitHub credentials whenever we interact with our private repository. It's a time-taking process and slows down our piece of work.

There are different ways to get rid of the above problem. The all-time fashion to do information technology is to employ SSH. But, at that place are other ways to practise it. Let's look at all of them i by one.

.git config

All the information most our repositories versions is stored in .git directory. Information technology's a subconscious folder. There is a config file in it that allows us to configure the settings. But, it'due south not recommended in full general.

We can clone a individual repository by adding ourusernameandpasswordin the repository URL every bit follows.

          git clone https://<potent>username:password</strong>@github.com/<strong>username</stiff>/<potent>repository_name</stiff>.git                  

Update theusername,password, andrepository_namewith advisable details. Since nosotros have given our credentials in the URL, it won't enquire for authentication every bit we have seen before.

So, we are going to follow the above method of hallmark and update our repository configuration accordingly. Let'south see the steps to get rid of repetitive hallmark past updating the URL.

  • Open the .git folder in your cloned repository.
.git Folder
.git Folder
  • Y'all'll find a file with the name config. Open it using any text editor of your choice.
  • There will exist a line with our repository link equally follows.
Repository Link in config
Repository Link in config
  • Update the URL past adding yourusernameandpassword, every bit seen in a higher place.
Repository URL Update
Repository URL Update

At present, again update something in the repository, commit and push them.

Do you find anything?

It shouldn't have asked for your GitHub credentials this time. So, we have solved our trouble by updating our repository setting.

You might have noticed that it's not secure. Every bit we are exposing our credentials. And this method won't work in case your GitHub password contains @graphic symbol.

And so, there are some critical disadvantages of using this method. Hence let's ignore it and motility to the side by side method.

credential.helper

The credential.helper allows us to shop the credentials forever in ~/.git-credentials file.

Information technology will shop our credentials when we enter them for the first fourth dimension. Over again when nosotros try to access the private repository, information technology won't ask for credentials until it'due south stored in ~/git-credentials file. So, that'southward one of the ways to avert our trouble. Allow's see information technology in action with precise steps.

  • First, we need to activate the pick to shop our credentials with the command git config credential.helper store.
  • After activating the option, endeavor to access the private repository with your username and countersign.
  • Once yous take entered your username and password, it will store it in ~/.git-credentials file with your GitHub credentials equally follows.
git-credentials
git-credentials

Now, once more the same process to check whether information technology's working correctly or not. Update, commit and push. I am sure information technology won't ask yous for the credentials if you lot have followed the above steps to store your credentials.

Going fine…

What if y'all want to relieve the credentials forivhours instead of forever?

The credential.helper provides a way to store our credentials temporarily for a certain amount of time. We use cache instead of store to store the credentials for a certain amount of time.

The enshroud will store our credentials for 15 minutes by default. After 15 minutes, the git will once more inquire for credentials. But, we can modify the default time using the following command.

          git config credential.helper 'enshroud --timeout={time_in_seconds}'        

Don't forget to give the fourth dimension in seconds. Let's see information technology in activeness.

  • First, we demand to activate the choice to enshroud our credentials with the command git config credential.helper cache.
  • Access the private repository with your username and password.
  • One time you have entered your username and countersign, it will cache your GitHub credentials for a specified fourth dimension.

Now, update, commit and push. Again it won't ask for your credentials as we have said it to cache them.

We have shown y'all the commands to work a git initialized repository. We can update the git configuration globally for all projects by adding the --global flag in the above commands.

Personal Access Tokens

The personal access tokens are used to give access to the GitHub API. The personal admission tokens are likeOAuth tokens. Then, they can be used for basic authentication instead of a password for git. Hence, we can use the personal access tokens to resolve our problem.

Let's meet how to exercise it.

  • Log in to your GitHub account.
  • Go to theSettings.
GitHub Settings
GitHub Settings
  • Now, go to theDevelop settings from the left navbar.
GitHub Developer Settings
GitHub Developer Settings
GitHub Developer Settings
GitHub Programmer Settings
  • Click on thePersonal access tokensto attain our final destination. You will run into the personal access tokens equally follows.
GitHub Personal Access Tokens
GitHub Personal Admission Tokens
  • Click on theGenerate new tokento generate a new 1.
Generate new token
Generate new token
  • Enter the Note for the token. You can recall of it as curt notes for the token to call back.
Personal access token Note
Personal access token Notation
  • Select the permissions for the token. The programs using the token will grant admission to all the selected permissions. In our example, select the repo.
Repository Permissions
Repository Permissions
  • Scroll down to the bottom and clickGenerate tokenpush button.
Generate token Button
Generate token Push button
  • It'll evidence the personal access token merely once as follows. We can't see our personal token over again. And so, copy it and relieve it somewhere securely. Use a password manager if you need to.
Personal access token
Personal access token
  • We take successfully created thePersonal admission token.
  • Now, information technology'south time to utilise information technology to access our private repository.
  • Update the repository URL in .git/config file as https://{personal_access_token}@github.com/hafeezulkareem/private_repository.git similar to the first method.
Personal access token in config
Personal access token in config

Now, try to access the individual repository.

Did it ask you lot for the authentication?

No, it won't ask you lot for the authentication until the token is agile. Let's move to the terminal fashion to resolve our problem.

SSH

SSH is used to authenticate ourselves. Y'all notice the full document about SSH in GitHub here.

The idea is simple. Generate an SSH key, add it to the GitHub business relationship and savour passwordless authentication.

Permit'south see these three steps in particular.

  • Open terminal or cmd in your organization.
  • Enter the command ssh-keygen -t rsa to generate a new SSH key.
  • It will ask for the directory to salvage the key. Press Enter to select the default directory. Only, you may besides change the directory based on your preference. Here, we are going with the default directory.
SSH Directory
SSH Directory
  • Now, we have to enter thepassphraseto protect our SSH key. Only it's optional.
    • If we choose a passphrase for the SSH fundamental, we must enter information technology showtime whenever we power on our arrangement.
    • If we didn't choose the passphrase, then there is no need to enter it start.
SSH Passphrase
SSH Passphrase
  • Enter the passphrase once more to ostend it.
SSH Passphrase
  • Finally, information technology will generate a new SSH key for usa every bit follows.
SSH Key
SSH Key

We have successfully generated a new SSH fundamental in our systems. Information technology'll create 2 files every bit follows (if you lot have changed the path, and so the file names may vary).

SSH Key Files
SSH Key Files

Now, information technology'south time to connect with our GitHub account. The contents in the file with the extension .pubneed to be copied to our GitHub account for the connection. In my case, it'south id_rsa.pub .

  • Log in to your GitHub account.
  • Open up theSettings.
GitHub Settings
GitHub Settings
  • Click onSSH and GPG Keys to reach our final destination.
SSH and GPG Keys
SSH and GPG Keys
SSH and GPG Keys
SSH and GPG Keys
  • Click on theNew SSH Fundamentalto add our newly generate SSH cardinal.
New SSH key
New SSH key
  • Yous volition navigate to the post-obit screen.
New SSH Key
New SSH Key
  • Add the appropriate title for the SSH key. The SSH keys are dissimilar for each system. And then, choose based on information technology is one of the good options. Only, information technology's not the only selection. Y'all may choose based on other things as your preference.
  • Later on choosing the title, copy and paste the .pubcontents into the second field.
New SSH key
New SSH fundamental
  • Finally, hit theAdd SSH keyand ostend the admission with your GitHub password.
  • The newly added SSH key will look as follows.
New SSH key
New SSH key

Nosotros have added our newly generated SSH primal to GitHub. At present, we have to authenticate the SSH connection to savour passwordless authentication later. To do information technology, enter the following command in concluding or cmd.

          ssh -T            [email protected]                  
SSH Connection
SSH Connection

Information technology volition enquire for confirmation. Confirm it. And that's information technology, and nosotros are washed.

At present, clone your private repository. It won't ask for any hallmark this time.

Update, commit and button. There you go. It won't inquire you for the authentication anymore. Savour it.

Determination

Phew! we accept covered various methods to admission private repositories without entering credentials all the time. Yous may use any method. Just, the general and best practice is to utilize theSSHmethod for hallmark.

Again information technology'southward up to your preference; there'due south no strict dominion to use the merely SSH method. But, most businesses utilize the SSHmethod for hallmark, which is secure and saves a lot of time. And brand sure your credentials are condom.

Happy Developing 🙂