git with specific ssh key

需要將github private repo分享時,可針對repo使用collaborator方式加入帳號,缺點是該帳號具有寫入權限,或是在global設定可存取的ssh key,但這樣的key具有整個帳號的存取權限

另一種方式是針對repo加入deploy key,可以設定是否有寫入權限,但缺點是一旦在某個repo設定了key,不能在其他repo加入。
因此透過新生成的key來指定哪些key可以存取repo,而非使用機器預設的ssh key(~/.ssh/id_rsa)便成了一個折衷方式。
這樣一來可以針對每個repo分別gen一組(or多組)唯讀權限的key,與可寫入的key,再分發給使用者操作。

一行產生ssh key在特定位置(此處設為當前目錄)

ssh-keygen -t rsa -b 4096 -f ./id_rsa -y -q -N ""

git指定 ssh key

參考:https://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command


ssh-agent bash -c 'ssh-add /somewhere/id_rsa; git clone git@github.com:user/project.git'
其他操作亦同
ssh-agent bash -c 'ssh-add /somewhere/id_rsa; git pull'

在github repo上設定deploy key id_rsa.pub (不是id_rsa) 即可存取

This entry was posted in System Administration. Bookmark the permalink.

Leave a Reply