When using ssh-keygen without any arguments to generate my ssh keys, it generates both the public and private keys with 644 permissions, making the private key too open to be used. I am running Ubuntu 20.04 and my default umask 0002.
root@sshkeygen-lgriffin:/home/lgriffin/.ssh# umask
0022
root@sshkeygen-lgriffin:/home/lgriffin/.ssh# ll
total 66
drwx------+ 2 lgriffin lgriffin 4 Sep 29 14:22 ./
drwxrwx---+ 19 lgriffin lgriffin 29 Sep 29 14:22 ../
-rw-r-----+ 1 lgriffin lgriffin 2622 Sep 29 14:22 id_rsa
-rw-r-----+ 1 lgriffin lgriffin 581 Sep 29 14:22 id_rsa.pub
here