Reimporte o certificado ssh após cada reinicialização para que o GIT PUSH sobre ssh funcione

Reimporte o certificado ssh após cada reinicialização para que o GIT PUSH sobre ssh funcione

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.pempara 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-keygensolicite 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 gitservidor (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>

informação relacionada