
我在 macbook air 上使用 OSX 10.8,我配置了 git 透過 ssh 將我的儲存庫推送到 EC2 執行個體。一切都很好。
唯一的問題是,每次重新啟動後,我都必須ssh-add certname.pem
允許 GIT 透過 SSH 連線到我的 ec2 執行個體。
我不確定這是否只是一個被忽視的配置問題,或者是否有更深入的原因。
答案1
你不能用嗎
ssh-add -K [keyfile]
將資訊添加到您的鑰匙圈中?然後,下次您啟動終端並授權該鑰匙圈時,它就會出現
答案2
為什麼不直接設定一個沒有密碼的金鑰並讓 git/ssh 使用該金鑰作為 SSHIdentityFile
?
(儘管ssh-keygen
在產生金鑰時要求您輸入密碼,您只需點擊即可enter,並且產生的金鑰不需要使用密碼)。
由於您想要自動重新新增此金鑰,因此您將繞過使用金鑰所能提供的任何安全性,因此無密碼金鑰和代理自動匯入的金鑰之間沒有實際差異。
顯然,您不希望此密鑰能夠執行除訪問您的git
伺服器之外的任何操作(如果有人獲得密鑰的私有部分,您不希望他們像您一樣運行命令!)
答案3
您需要的是設定腳本以將 pem 新增至 OSX 的鑰匙串,將以下行新增至您的 ~/.bash_profile (如果您使用的是 zsh,則為 ~/.zshrc )
ssh-add -K certname.pem
答案4
嗯。這是與 EC2 的 ssh 設計的不幸互動。強烈建議您使用 pem 檔案來存取實例,因此為什麼您ssh -i <aws.pem>
在所有連接範例中...
git 別名怎麼樣?我還沒有對此進行測試,因為我沒有可以推送的 EC2 實例,但類似:
git config alias.ec2push "!sh -c 'ssh-add certname.pem && git push $1 $2'"
然後你會用:
git ec2push <repo> <branch>