Use o encaminhamento de agentes SSH . Você terá que usar um agente em sua máquina inicial; você também terá que ter o encaminhamento de agentes ativado em seu cliente e em seu servidor Linux.
Assumindo o OpenSSH ao redor:
test -z "$SSH_AUTH_SOCK" && eval "$(ssh-agent)"
ssh-add -f /path/to/your/key-accepted-by-GitHub
ssh-add -f /path/to/your/key-accepted-by-your-user-on-the-linux-box
ssh -A userName@theLinuxBox /path/to/the/script
O sshd no seu servidor ("yourLinuxBox") terá que permitir o encaminhamento do agente ( AllowAgentForwarding
em seu arquivo sshd_config; normalmente é padronizado como "yes" se não estiver presente).
Com seu agente local segurando a chave GitHub e com o agente encaminhado através de sua conexão SSH para a caixa Linux, qualquer uso normal de ssh na caixa do Linux que precisa da chave (por exemplo git puxar ) poderá usar.
Ou, você pode usar uma entrada em .ssh/config
para especificar os bits da "primeira perna" para abreviar os dois últimos comandos como ssh backup-server /path/to/the/script
(você ainda precisará garantir que a chave do GitHub foi adicionada a seu agente local):
Host backup-server
HostName theLinuxBox # name or IP
User userName # username on remote system
IdentityFile /path/to/key-accepted-by-your-user-on-the-linux-box
ForwardAgent yes
Observação : não ative o encaminhamento de agentes para servidores não confiáveis (a raiz no servidor pode usar seu acesso local para usar as chaves armazenadas em seu agente local).