Back to Resources

In this guide:

GitHub usernames and Illinois NetIDs

The Illinois GitHub service is not a separate server: it uses the same github.com as the rest of the Internet. You must create a GitHub username to use the service. The free account creation options are linked off the https://github.com homepage.

GitHub secures Illinois-based organization access with the Illinois Single Sign On (SSO) where you are prompted for your NetID and NetID password. You'll see this second prompt if you're visiting an Illinois GitHub organization via the github.com website. In this way, Illinois authentication is more of a two-factor authentication where the GitHub authentication happens first, and then the Illinois authentication happens on top.

All GitHub activity is tracked with the Github username. There are ways in the GitHub website (and programatically via API) where organization owners can see the mapping of GitHub username to Illinois NetID.

Authenticating to GitHub

As of August 2021, GitHub no longer allows direct password authentication via git clients. See their 2020 blog post for more background. This is a GitHub decision and is site-wide; it's not specific to Illinois or our implementation.

There are at least three approaches for authenticating against GitHub, ordered here from easiest to hardest to implement:

Use an application that manages the Personal Access Token for you (GitHub Desktop)

Coming from using a password to authenticate with git to the current GitHub environment, the easiest method is to use a git client that automatically requests, stores, and uses the tokens for you. This is transparent to the user because everything is managed by the git client and its tools.

GitHub Desktop is an example of a graphical and command line git client that handles the authentication for you. That is, it prompts you for the GitHub password (or routes to web authentication) where needed and stores the tokens for future use. GitHub Desktop docs

GitHub includes other tools, like the GitHub CLI and Git Credential Manager that can be used to also store and use GitHub credentials. See Caching your GitHub credentials in Git for more info.

Authenticate with an ssh key instead of a password

GitHub can be configured to use secure shell (SSH) for connecting to repositories and access. This typically involves creating a SSH public and private key pair and configuring your ssh environment to use that key with github.com, associating the SSH public key in your GitHub account, and configuring git to use ssh links as your GitHub git remote configurations.

Note that creating the ssh key and associating it with your ssh environment is not necessarily a GitHub activity. It's SSH configuration in your applications or computer and GitHub can be configured to use it. This is a traditional model of caching login credentials to use with GitHub before the Personal Access Tokens and GitHub specific credential managers were made.

See the GitHub documentation for connecting with ssh

SSH keys created to authenticate against Illinois associated GitHub organzations need to be authorized to use with SSO. See the GitHub documentation for authorizing an SSH key for use with SAML Single Sign On

Authenticate with a Personal Access Token

Authenticating with a GitHub Personal Access Token (PAT) means logging into the https://github.com website, going into your profile, and creating a token.

See Creating a Personal Access Token on the GitHub Docs site for more instructions.

When you create the token, be mindful of these points: