Configurando as chaves do grupo ssh sem afetar ~ / .ssh / config no Linux

1

Eu tenho que configurar uma chave de grupo ssh usada para publicar em um repositório git remoto.

Como o git (assim como eu presumo que muitos outros programas) não permitem definir uma defasagem do sinalizador ssh -i , a informação que a chave será usada vem dos padrões ou o que é definido em ~/.ssh/config

Isso exigiria uma nova tarefa de administração para os usuários que precisam ter essa capacidade (por exemplo, adicionar as entradas adequadas no arquivo ~/.ssh/config ).

Existe alguma maneira que eu poderia poupar esse esforço? Não consegui localizar nenhuma variável de ambiente que seria lida pelo OpenSSH, pois isso seria uma solução (criando um script de encapsulamento que faz o que é necessário).

    
por estani 08.11.2012 / 17:40

1 resposta

0

Então as respostas são as seguintes (obrigado):

Usar um agente ssh para manter a chave sempre funcionará. Para isso, você poderia encapsular a chamada em um script:

#!/bin/bash
key=$1
[[ "$SSH_AGENT_PID" ]] || eval $(ssh-agent)
ssh-add $key

#...the rest of the script...

No caso particular de git, há uma variável de ambiente GIT_SSH que aponta para o comando que será chamado em vez de ssh. Portanto, é possível emitir ssh com o sinalizador -i .

Apenas para avisá-lo de que esta é uma prova de conceito, você precisa assegurar que o ambiente não é afetado após o carregamento do script (ou seja, se um agente estava presente e a chave não estava carregada, você precisa remover a chave nenhum agente estava presente, remova o agente, etc)

    
por 09.11.2012 / 13:49