The script here effectively wraps up the documentation for generating SSH keys for GithHub. At the moment this is entirely untested and therefore likely has a lot of wrinkles which will be smoothed out (it was created on a system that doesn't need it for the sake of other systems).
#!/bin/bash declare -r email="${1?Provide email address as first argument}" declare -r output_file="${2?Provide key file as second argument}" declare -r title="${3?Provide title as third argument}" declare -r gh="${GH:-gh}" my::die() { echo "${@}" exit 1 } >&2 type -t ${gh} > /dev/null || my::die 'gh GitHub client is not installed, install using brew?' ${gh} auth status || my::die 'Login with GitHub Client!' ssh-keygen -t ed25519 -C "${email}" -f "${output_file}" ${gh} ssh-key add "${output_file}.pub" --type authentication --title "${title}"
Note aboute auth... Example in ~/.ssh/config
Host github.com-mw Hostname github.com User git IdentityFile ~/.ssh/id_mw
Reboot ssh-agent