Ssh
命令行方法或以程式方式將 ssh 密鑰添加到 github.com 使用者帳戶
有沒有辦法使用 github.com 伺服器的使用者名和密碼來辨識,以便將 ssh 密鑰添加到 github 使用者帳戶?到目前為止,我所閱讀的所有內容都表明必須通過 Web GUI 添加使用者的 ssh 密鑰。我正在尋找通過命令行界面或 bash/ansible/something 腳本添加密鑰的方法或過程。
2020 年更新
正如開發人員更改中所述,密碼身份驗證將在以下位置棄用:
世界標準時間 2020 年 11 月 13 日 16:00
此外,正如@trysis 在評論中所問的那樣,我們需要 2FA 的解決方案。
新方法是使用個人訪問令牌:
對於我們的具體範例(添加 ssh 密鑰),我們只需要寫入權限(使用寫入權限時會自動添加讀取權限):
更新的命令(通過 curl):
curl -H "Authorization: token YourGeneratedToken" --data '{"title":"test-key","key":"ssh-rsa AAA..."}' https://api.github.com/user/keys
這在啟用 2FA 時也有效。
老的
github api 支持使用使用者名和密碼進行身份驗證:
通過 GitHub API v3 可以通過三種方式進行身份驗證。…
基本身份驗證
$ curl -u “使用者名” https://api.github.com
…
因此,只需選擇您喜歡的語言的庫並使用*創建公鑰*“公鑰”API 部分的實現版本:
創建一個公鑰。要求您通過基本身份驗證或至少通過 OAuth 進行身份驗證
$$ write:public_key $$範圍。
輸入
POST /user/keys
{ "title": "octocat@octomac", "key": "ssh-rsa AAA..." }
如果你想從命令行使用它(通過 curl):
curl -u "username" --data '{"title":"test-key","key":"ssh-rsa AAA..."}' https://api.github.com/user/keys
甚至不提示輸入密碼:
curl -u "username:password" --data '{"title":"test-key","key":"ssh-rsa AAA..."}' https://api.github.com/user/keys