Quando eu quero começar (ou reiniciar) ssh-agent
, isso me dá alguns comandos que eu deveria executar fazendo eval $(ssh-agent)
. Claro que isso falha para os peixes, já que fornece a sintaxe para bash ou csh.
Os comandos parecem:
SSH_AUTH_SOCK=/var/folders/v4/c116f_790t7g58lh3jbr7_vm0000gq/T//ssh-L95xhmGl9FZo/agent.36846; export SSH_AUTH_SOCK;
SSH_AGENT_PID=36847; export SSH_AGENT_PID;
echo Agent pid 36847;
ou para csh:
setenv SSH_AUTH_SOCK /var/folders/v4/c116f_790t7g58lh3jbr7_vm0000gq/T//ssh-Tf8etHZfP9k3/agent.36873;
setenv SSH_AGENT_PID 36874;
echo Agent pid 36874;
A versão csh é executada sem reclamação quando eu faço eval (ssh-agent -c)
e, em seguida, echo $SSH_AGENT_PID $SSH_AUTH_SOCK
fornece a saída esperada. No entanto, novos shells não mantêm essas variáveis. O que setenv
faz? claramente as variáveis set
s de alguma forma, mas não está na documentação. Se eu iniciar um novo terminal, as variáveis serão perdidas, então não tenho certeza se elas são exportadas?
Acabei de descobrir que setenv
é uma função de peixe, com a definição set -gx
, por isso suponho que defina a variável como global
e a exporte. Eu não tenho um bom entendimento do escopo da variável, então é a coisa apropriada para as variáveis ssh-agent
?
Para o contexto, estou fazendo isso com base nas instruções no github . Eu tenho usado uma chave ssh para o github há anos e nunca fiz a coisa ssh-agent
ou ssh-add
, mas eu notei isso durante a configuração em um novo computador. Também parece que o os x está rodando o ssh-agent sozinho (ou algo mais que configurei no passado), porque existe $SSH_AUTH_SOCK
já. Então talvez correr isso não é importante? ssh-add
é executado sem reclamação mesmo sem executar ssh-agent
.