Portanto, a chave a ser adicionada deve depender do usuário que iniciou a sessão do sudo? a variável de ambiente SUDO_USER
pode ser o que você precisa?
Coloque algo como o seguinte no arquivo de inicialização do shell do usuário shared
(diga .bash_login
para o Bash. Embora você precise iniciar o shell como um shell de login com sudo -i
):
eval $(ssh-agent -s)
ssh-add ~/.ssh/${SUDO_USER}_rsa
ou até mesmo
if [ "$SUDO_USER" = userthis ] ; then
echo do something for this user
elif...
fi
É claro que desvantagem dessa conta compartilhada é que todos vocês efetivamente terão as chaves um do outro, já que as chaves são salvas sob um único ID de usuário e não há nada para separar usuários diferentes da conta compartilhada.
Não tenho certeza se seria possível iniciar um ssh-agent
antes do sudo
em sua conta normal e usá-lo no shell sudoed. Suponho que pelo menos seria necessário corrigir as permissões do soquete do agente e, mesmo assim, outros usuários da mesma conta poderiam usar as chaves no agente, embora talvez não copiá-las.