てくのろじーたのしー

Haskellぺろぺろ

curl で GitHub に SSH 公開鍵をアップロードする

SSH公開鍵を手でアップロードするのが面倒なので自動化しました

#!/bin/bash

key_name=`hostname`
pub_key=`cat ~/.ssh/id_ed25519.pub`
json="""
{
  \"title\": \"$key_name\",
  \"key\": \"$pub_key\"
}
"""

read -sp "Enter your accout name: " user
echo
read -sp "Enter github password: " pass
echo
read -sp "Enter github one-time password: " otp
echo

curl -X POST -u "$user:$pass" -H "X-GitHub-OTP: ${otp}" -d "$json" https://api.github.com/user/keys

必要に応じて pub_key のパスを変えたり、 user を固定値にすると良いと思います。