コマンドラインを使用してSSHキーをGitHubアカウントにアップロードする方法を見つけましたが、小さな問題があります。
次のコマンドを使用してこれを実行できます。
curl -u "user:pass" --data '{"title":"test-key","key":"ssh-rsa Aaa"}'
https://api.github.com/user/keys
ただし、Chefではこれを使用してGitHubアカウントにノードキーを追加します。
curl -u "user:pass" --data '{"title":"test-key","key":"`cat ~/.ssh/id_rsa.pub`"}' https://api.github.com/user/keys
しかし、エラーが発生します。
なぜですか?
答え1
命令cat
の結果には拡張機能を使用する必要があります。コマンドの置き換え。
Bashの構文は次のとおりです。
curl -u "user:pass" --data '{"title":"test-key","key":"'"$(cat ~/.ssh/id_rsa.pub)"'"}' https://api.github.com/user/keys
古典的なバックティック表記も使用できます。
curl -u "user:pass" --data '{"title":"test-key","key":"'`cat ~/.ssh/id_rsa.pub`'"}' https://api.github.com/user/keys