Aug 9th, 2017
$ nano ~/.ssh/known_hosts
Enter ls -al ~/.ssh
to see if existing SSH keys are present:
ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
Check the directory listing to see if you already have a public SSH key.
By default, the filenames of the public keys are one of the following:
To create a new SSH key pair:
Generate a new ED25519 SSH key pair:
ssh-keygen -t ed25519 -C "email@example.com"
# to copy the public key
cat ~/.ssh/id_ed25519.pub | pbcopy .
Or, if you want to use RSA:
ssh-keygen -t rsa -b 4096 -C "email@example.com"
# or
ssh-keygen -b 4096 -C "email@example.com"
# to copy the public key
cat ~/.ssh/id_rsa.pub | pbcopy .
The -C flag adds a comment in the key in case you have multiple of them and want to tell which is which. It is optional.
If, in any case, you want to add or change the password of your SSH key pair, you can use the -p flag:
ssh-keygen -p -o -f <keyname>
or
ssh-keygen -p
# Start the SSH key creation process
Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]
Key has comment '/Users/you/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase): [Type new passphrase]
Enter same passphrase again: [One more time for luck]
Your identification has been saved with the new passphrase.
Copy your public SSH key to the clipboard by using one of the commands below depending on your Operating System:
MacOS:
pbcopy < ~/.ssh/id_ed25519.pub
# or
cat ~/.ssh/id_rsa.pub | pbcopy .
WSL / GNU/Linux (requires the xclip package):
xclip -sel clip < ~/.ssh/id_ed25519.pub
Git Bash on Windows:
cat ~/.ssh/id_ed25519.pub | clip
Note: If you opted to create an RSA key, the name might differ.
$ ssh -T git@github.com
$ ssh -T git@gitlab.com
$ ssh -T git@bitbucket.org
Example: To clone repository
$ git clone git@github.com:your_user_name/your_project_name.git
$ git clone git@gitlab.com:your_user_name/your_project_name.git
$ git clone git@bitbucket.org:your_user_name/your_project_name.git
Example: Reconfigure existing repositories to use SSH
List the existing remote repositories and their URLs with:
$ git remote -v
That command should output something like:
origin https://your_server/your_user_name/your_project_name.git (fetch)
origin https://your_server/your_user_name/your_project_name.git (push)
Change your remote repository’s URL with:
$ git remote set-url origin git@your_server:your_user_name/your_project_name.git
Git will use SSH
, instead of HTTPS
, to synchronize that local repository with its remote equivalent.