One of the oh-so-lovely things is that I can access my repositories using SSH, making git clone and git remote and git fetch and git rebase so much easier ...
I no longer need to muck about with HTTPS URLs and user IDs and passwords, like a cave person ...
Instead, I merely need to teach the git client about my SSH credentials, and I'm good to go.
This means, in part, generating an SSH public/private key pair using a command such as ssh-keygen as per the following example: -
ssh-keygen -b 4096 -t rsa -f /tmp/foobar -N ""
Generating public/private rsa key pair.
Your identification has been saved in /tmp/foobar.
Your public key has been saved in /tmp/foobar.pub.
The key fingerprint is:
SHA256:jdVHYm0U7hceMDZ594LaOhBTz+BC0YPTWtfl6eNfv3I hayd@Daves-MBP
The key's randomart image is:
+---[RSA 4096]----+
| .= oO=o.|
| + Boo=Boo|
| . *.*.o+++|
| =+. +o+ +|
| S+.o .=.|
| . . . ...|
| . . ..|
| o . E+|
| . o.+|
+----[SHA256]-----+
and then grab the public key: -
cat /tmp/foobar.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+RhkGDj7zr86FLEkmhcQ5+bA9IwFGtdAVwq7bqkVvbbsWv4YtupknAEaao8epLAipZjHGgitlUskBGDlQc4TGTTyOHt6goYIjfetUv9XtWy4gsyF8k69x6NfvPZ/BFvLWSSc0LPH6+jYSs7ZNdzsqoafo7qr/nnjkCvD/raTUkuPgnoWFMAyKGcUbMHjaHHvOYf2DJriFoIlK+hSYO7tBj+Cf5OS1/DgNYHqSM8l3fVspM2fzyz2VAGEMZRsRWBh0CF7nKxc1aWp2gMzZEX5RJ9Lth+gIVIaWCixbuAerh82y4d/7eTHSh9OAOX/QNTwCC+eOTTaS7G/W+PoBSAx8wJi3xZapotOe43UgJ+KE+sRFjGXr/oe8w9IenfWiPiEAhdD9YHsOBCpvQ65zZLH75tGdKQ3Neu2wgP8os6qPTMU9S02wsit3vWsiAgLURRMX9Fat1XTI737B9rwdA/JnFMDf15szN9wg3nypRuvgtAtihhxJH87CT8R23XzlgNhCroYBkprlC+hGXmdyifxCFdSAgBo4xzm2XYRL63WBnfd8MOOLOoxxQDV8EYTW5PCS3grx3Rh07W6Lcs1Jnw6oYBUOpseZQHdzerX0mLuMoJL4uM3ZB+moTyi7UgsbMsBlPWO6xKTbhD3X4ZOhiMpBF/J9dJ3HfeFFnVU6Is6z2w== hayd@Daves-MBP
to the clipboard
PS On macOS, this is a simple matter of running pbcopy < /tmp/foobar.pub
We can then navigate to the Settings -> SSH and GPG keys page on GitHub: -
From there we can simply click the New SSH key button, give the to-be-added key a useful name e.g. Dave's MacBook, September 2019 etc. and paste in the public key from the clipboard.
This results in a new key: -
However, there is one small downside - GitHub merely shows the fingerprint of the newly added key: -
19:fd:a6:ff:44:a2:5a:11:06:75:0b:86:4d:c1:88:4c
which makes it somewhat hard to track back to an actual key pair, especially if one uses a less-than-explanatory name.
However, there is good news ....
This command: -
ssh-keygen -l -E md5 -f /tmp/foobar
can be run against the public OR private key ( they're a pair! ), and returns the fingerprint in the same MD5 format as GitHub uses: -
4096 MD5:19:fd:a6:ff:44:a2:5a:11:06:75:0b:86:4d:c1:88:4c hayd@Daves-MBP (RSA)
Notice that the fingerprint is the same !!
Now on an audit of my GitHub and GitHub Enterprise accounts ........
*UPDATE* And I can do this to get the fingerprint of ALL the keys: -
for i in ~/.ssh/*.pub; do ssh-keygen -l -E md5 -f $i; done
Thanks to this: -
for inspiration.
No comments:
Post a Comment