Unprotected private key file

Context #

I was configuring a ssh key pair to authenticate against a remote repository as part of a script and I ran into the following error, while doing the initial git clone:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '~/.ssh/key_name' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "~/.ssh/key_name": bad permissions

Solution #

As it turns out, ssh key files need to have permission so that they are only readable by its owner. To fix this, as part of the script configuration section, I added the following line after having all the ssh files in place:

chmod -R go-wrx ~/.ssh

which recursively removes the write, read and execute permissions for the group and others bits.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer’s view in any way.