Ssh

命令行方法或以程式方式將 ssh 密鑰添加到 github.com 使用者帳戶

  • October 15, 2021

有沒有辦法使用 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

這是使用 curl 與 github API 互動的一個不錯的小教程

引用自:https://unix.stackexchange.com/questions/136894