CodeCommit是一項安全、高度可擴展、可受管私有的 Git 儲存庫。CodeCommit您無需管理自己的原始檔控制系統,也不必擔心擴充其基礎架構。從程式碼到二進位檔,CodeCommit 都可以儲存。它支援 Git 的標準功能,可以完美搭配以 Git 為基礎的現有工具一起運作。
上面是官方介紹,但對我來說簡單說就是 AWS 版要付費的 GitHub,當然過去如果大多服務都在 AWS 上, 服務整合會比 GitHub 更好,其中一個點是 AWS CloudTrail 和 AWS CloudWatch 對於整個庫的監控會更方便,不可否認的,GitHub、Gitlab、BitBucket 的社群討論和資源肯定是更豐富,但後續應該也不用考慮了,詳情請往下看↓
AWS CodeCommit is no longer available to new customers. Existing customers of AWS CodeCommit can continue to use the service as normal
從 2024/07 之後, AWS 公佈說如果是新使用者,不提供 AWS CodeCommit 服務了,我想建立的部分應該就不太重要了,如果是已經在使用的朋友是可以繼續使用的。
或是這邊也有官方教學說明如何將 Repo 搬走
連接的部分還是可以說一下,畢竟短期內應該很多專案搬不走~
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/{your_user_name}/.ssh/id_rsa):
可以直接一路 enter
往下,最終就會創建出公鑰和私鑰
公鑰:/Users/{your_user_name}/.ssh/id_rsa.pub
私鑰:/Users/{your_user_name}/.ssh/id_rsa
或是也可以跟我一樣修改名稱,以免後續有多把鑰匙需要分辨
結束之後可以進到 /Users/{your_user_name}/.ssh/
路徑就能看到了
cat /Users/{your_user_name}/.ssh/id_rsa.pub
如果跟我一樣有修改名稱的話要執行下方
cat /Users/{your_user_name}/.ssh/codecommit_id_rsa.pub
會拿到這一整段,只需要全選複製就好了(下方只是範例😂)
ssh-rsa AAAAB3NzaIUOIHCDO<K98LKKj
AAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjnfmoNm8uXsdfj8Kbr2s
進到 IAM 的 user 後,選擇 security credentials,往下滑就能找到 SSH public keys for AWS CodeCommit
的區塊,剛開始還沒新增前會像下圖:
將剛剛複製的 ssh key 放上去儲存即可
接著應該會拿到一組公鑰的 SSH KEY ID
以上方為例大概會像這樣 APYWTEU6EWWEUOUIFFRF
有了這組之後就能回到本機設定了
在 /Users/{your_user_name}/.ssh/
當中,我們需要創一個 config
檔案紀錄連接的資訊
範例如下:
Host git-codecommit.*.amazonaws.com
User APYWTEU6EWWEUOUIFFRF
IdentityFile ~/.ssh/codecommit_id_rsa
Host
的部分可以用*
代表全部的 region
或是指定你目前的 regionUser
:要放剛剛複製的公鑰 IDIdentityFile
:要放剛剛產生的私鑰chmod 600 config
6
0
通常用於保護敏感文件(如 SSH 金鑰、配置文件),確保只有文件的擁有者能夠訪問該文件,從而提高安全性。
到底這些數字怎麼計算的可以參考鳥哥的 Linux 基礎檔案權限與基礎帳號管理
ssh git-codecommit.us-east-1.amazonaws.com
把 user 的許可政策加入 CodeCommitPowerUser
按 add permissions
就可以看到CodeCommitPowerUser
新增上去了
git clone ssh://git-codecommit.{your region}.amazonaws.com/v1/repos/{your repo name}