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

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

Eu tenho que configurar uma chave de grupo ssh usada para publicação em um repositório git remoto.

Como o git (assim como presumo muitos outros programas) não permite definir um flag lag ssh -ia informação de qual chave será usada vem dos padrões ou do que está definido em~/.ssh/config

Isto exigiria uma nova tarefa de administração para os usuários que precisam ter essa habilidade (ou seja, adicionar as entradas apropriadas em seus ~/.ssh/configarquivos).

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

Responder1

Portanto, as respostas são as seguintes (obrigado, tink):

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 do git existe uma GIT_SSHvariável de ambiente que aponta para o comando que será chamado ao invés do ssh. Então é possível emitir sshcom a -ibandeira.

Só para avisar que isso é uma prova de conceito, você precisa garantir que o ambiente não seja afetado após carregar o script (ou seja, se um agente estava lá e a chave não foi carregada, você precisa remover a chave, se nenhum agente estava lá presente, remover o agente, etc.)

informação relacionada