每次重新啟動後重新匯入 ssh 證書,以便 GIT PUSH 透過 ssh 運作

每次重新啟動後重新匯入 ssh 證書,以便 GIT PUSH 透過 ssh 運作

我在 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

看看這個https://superuser.com/a/409316/41202更多細節

答案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>

相關內容