Usando cURL para enviar JSON dentro de um script BASH

Tudo bem, aqui está o que estou tentando fazer. Estou tentando escrever um script de compilação rápida no bash que fará check-out de um repositório privado do GitHub em um servidor remoto. Para fazer isso da maneira mais fácil possível, desejo gerar uma chave RSA local definida no servidor remoto e adicionar a chave pública como uma chave de implantação para esse repositório específico. Eu sei como fazer isso usando a API do GitHub, mas estou tendo problemas para criar a carga JSON usando o Bash.

té agora, eu tenho esse processo específico incluído abaixo:

#!/bin/bash

ssh-keygen -t rsa -N '' -f ~/.ssh/keyname -q
public_key=`cat ~/.ssh/keyname.pub`

curl -u 'username:password' -d '{"title":"Test Deploy Key", "key":"'$public_key'"}' -i https://api.github.com/repos/username/repository/keys

Simplesmente não está criando corretamente a carga útil. Não sou especialista no que diz respeito à manipulação de strings no Bash, para poder usar seriamente alguma assistência. Obrigado

questionAnswers(2)

yourAnswerToTheQuestion