Para rodar ssh-agenteu tenho que usar
eval $(ssh-agent)
Por que eu tenho que evala saída de ssh-agent?
Por que não foi projetado para que eu possa executá-lo?
Nota: Backticks (`) removidos porque estão sendo descontinuados. Você pode ler mais sobre isso aqui, por exemplo .
manpágina, para começar ...
ssh-agenté que seja "projetado dessa maneira", é unix / linux, porque ssh-agenté executado em um processo filho do shell. Os processos filho não podem modificar os processos pai. Mas uma função pode: porque é executada no processo atual. Então, você poderia escrever uma função: do_set_ssh_agent() { eval ssh-agent ; }e que poderia ser executado simplesmente como: $ do_set_ssh_agent. Mas "programas" não são (normalmente) instalados como "funções" no linux / unix; em vez disso, os programas são instalados como arquivos que, como mencionado, são executados em um processo filho. (Fonte de scripts é uma excepção, mas ssh-agente é binária.)