Також можна явно передавати змінні середовища через ssh. Це вимагає певної настройки на стороні сервера, тому це не універсальна відповідь.
У моєму випадку я хотів передати ключ шифрування резервного репозиторію команді на сервері резервного копіювання, не зберігаючи там ключ, але зауважте, що будь-яка змінна середовище видно в ps
! Рішення передачі ключа на stdin також би спрацювало, але я вважав це занадто громіздким. У будь-якому випадку, ось як передати змінну середовища через ssh:
На сервері відредагуйте sshd_config
файл, як правило, /etc/ssh/sshd_config
і додайте AcceptEnv
директиву, що відповідає змінним, які ви хочете передати. Див man sshd_config
. У моєму випадку я хочу передати змінні в borg backup, тому я вибрав:
AcceptEnv BORG_*
Тепер на клієнті використовуйте -o SendEnv
опцію для надсилання змінних середовища. Наступний командний рядок встановлює змінну середовища, BORG_SECRET
а потім позначає її для надсилання на клієнтську машину (називається backup
). Потім він працює printenv
там і фільтрує вихід за BORG змінними:
$ BORG_SECRET=magic-happens ssh -o SendEnv=BORG_SECRET backup printenv | egrep BORG
BORG_SECRET=magic-happens