Вместо того, чтобы хранить временный файл, как в forcefsck, я предпочитаю использовать find
для поиска в активном агенте.
Что касается сценария, которому требуется ssh-agent
, я использую:
export SSH_AUTH_SOCK=$(find /run/user/$(id -u)/ -mindepth 2 -maxdepth 2 -path '*keyring-*' -name 'ssh' -print -quit 2>/dev/null)
Он ищет сокет ssh-agent
и возвращает первый. Он ограничен только текущим пользователем, поэтому вы не сможете случайно попытаться использовать других пользователей и получить ошибку отказа в разрешении. Вам также необходимо уже войти в систему с помощью активного ssh-agent
. (Ubuntu запускает агент при запуске графического интерфейса).
Если вы поместите это в другой сценарий, вам нужно будет вызвать его с помощью источника
или .
, поскольку необходимо установить переменную SSH_AUTH_SOCK
.