每次重新启动后重新inputssh证书,以便通过ssh的GIT PUSH工作

我在我的MacBook空气使用OSX 10.8,我有gitconfiguration推送我的存储库通过SSH的EC2实例。 一切工作正常。

唯一的问题是,每次重新启动后,我必须ssh-add certname.pem才能让GIT通过SSH连接到我的ec2实例。

我不确定这是否只是一个被忽视的configuration问题,或者如果有更深的原因。

你不能用

 ssh-add -K [keyfile] 

将信息添加到您的钥匙串? 那么下次你启动一个terminal的时候就会出现在那个钥匙串上

为什么不build立一个没有密码的密钥,并让git / ssh使用该密钥作为它的SSH IdentityFile
(尽pipessh-keygen在生成密钥时会要求您input密码,但您只需按Enter键,结果密钥就不需要使用密码短语)。

既然你想自动重新添加这个密钥,那么你将绕过任何使用密钥给你的安全性,所以在无密码密钥和代理自动导入密钥之间没有实际的区别。


显然你不希望这个密钥除了访问你的git服务器之外不能做任何事情(如果有人把私钥的一半拿到钥匙上,你不想让它们像你一样运行命令!)

你需要的是设置脚本来将pem添加到OSX的keychain下面添加到你的〜/ .bash_profile(或者如果你使用的是zsh〜/ .zshrc)

 ssh-add -K certname.pem 

看看这个https://superuser.com/a/409316/41202了解更多细节

嗯。 这是与EC2的sshdevise的一个不幸的互动。 强烈build议您使用pem文件来访问实例,因此为什么您在所有连接示例中都使用ssh -i <aws.pem>

如何git别名? 我没有testing过这个,因为我没有一个EC2实例在推,但是像这样:

 git config alias.ec2push "!sh -c 'ssh-add certname.pem && git push $1 $2'" 

那么你会推动:

 git ec2push <repo> <branch>