Коли я хочу запустити (або перезапустити) ssh-agent
, він дає мені кілька команд, які я повинен виконувати, виконуючи eval $(ssh-agent)
. Звичайно, це не вдається для риби, оскільки дає синтаксис bash або csh.
Команди виглядають так:
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;
або для 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;
Версія csh працює без нарікань, коли я це роблю eval (ssh-agent -c)
, а потім echo $SSH_AGENT_PID $SSH_AUTH_SOCK
дає очікуваний результат. Однак нові оболонки не зберігають цих змінних. Що робить setenv
? Очевидно, це set
змінні якось, але це ніде в документації. Якщо я запускаю новий термінал, змінні втрачаються, тому я не впевнений, що вони експортуються?
Я щойно виявив, що setenv
це функція риби з визначенням set -gx
, тому я припускаю, що вона встановлює змінну як global
змінну та експортує її. Я не дуже добре розумію область змінної, тож чи відповідна річ для ssh-agent
змінних?
Для контексту я роблю це, грунтуючись на інструкціях в github . Я використовував ключ ssh для github роками і ніколи не робив цього ssh-agent
чи іншого ssh-add
, але помітив це під час налаштування на новому комп’ютері. Також здається, що os x запускає ssh-агент самостійно (або щось інше, яке я створив давно в минулому), оскільки воно $SSH_AUTH_SOCK
вже існує . То, може, запустити це не важливо? ssh-add
працює без скарги навіть без запуску ssh-agent
.
functions setenv
, дивіться мою редагування. type
приємно, хоча. Здається, це якесь поєднання which
і functions
.
type setenv