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)