Estou usando o OSX 10.8 no meu macbook air, configurei o git para enviar meu repositório para uma instância EC2 via ssh. Tudo funciona bem com isso.
O único problema é que, após cada reinicialização, preciso fazer isso ssh-add certname.pem
para permitir que o GIT se conecte à minha instância ec2 por SSH.
Não tenho certeza se este é apenas um problema de configuração esquecido ou se há um motivo mais profundo para isso.
Responder1
Você não pode usar
ssh-add -K [keyfile]
adicionar as informações ao seu chaveiro? Então ele estará lá na próxima vez que você iniciar um terminal enquanto estiver autenticado naquele chaveiro
Responder2
Por que não configurar uma chave sem senha efaça com que o git/ssh use essa chave como seu SSHIdentityFile
?
(embora ssh-keygen
solicite uma senha ao gerar uma chave que você pode simplesmente pressionar entere a chave resultante não exigirá uma senha para ser usada).
Como você deseja adicionar novamente essa chave automaticamente, você está ignorando qualquer segurança que o uso de uma chave forneceria de qualquer maneira, portanto, não há diferença prática entre uma chave sem senha e uma que o agente importa automaticamente.
Obviamente, você não deseja que essa chave possa fazer nada, exceto acessar seu git
servidor (caso alguém coloque as mãos na metade privada da chave, você não deseja que eles executem comandos como você!)
Responder3
O que você precisa é configurar o script para adicionar o pem às chaves do OSX e adicionar a linha abaixo ao seu ~/.bash_profile (ou ~/.zshrc se você estiver usando zsh)
ssh-add -K certname.pem
Veja issohttps://superuser.com/a/409316/41202para mais detalhes
Responder4
Hmmm. Esta é uma interação infeliz com o design ssh do EC2. Você é fortemente encorajado a usar arquivos pem para alcançar instâncias, por isso você ssh -i <aws.pem>
está em todos os seus exemplos de conectividade...
Que tal um alias git? Não testei isso, pois não tenho uma instância EC2 para enviar, mas algo como:
git config alias.ec2push "!sh -c 'ssh-add certname.pem && git push $1 $2'"
Então você pressionaria com:
git ec2push <repo> <branch>