Dimungkinkan juga untuk melewatkan variabel lingkungan secara eksplisit melalui ssh. Itu memang membutuhkan beberapa pengaturan sisi server, jadi ini bukan jawaban universal.
Dalam kasus saya, saya ingin meneruskan kunci enkripsi repositori cadangan ke perintah di server penyimpanan cadangan tanpa kunci itu disimpan di sana, tetapi perhatikan bahwa variabel lingkungan apa pun terlihat di ps
! Solusi meneruskan kunci pada stdin juga akan berfungsi, tetapi saya merasa itu terlalu rumit. Bagaimanapun, berikut ini cara meneruskan variabel lingkungan melalui ssh:
Di server, edit sshd_config
file, biasanya /etc/ssh/sshd_config
dan tambahkan AcceptEnv
perintah yang cocok dengan variabel yang ingin Anda teruskan. Lihat man sshd_config
. Dalam kasus saya, saya ingin meneruskan variabel ke borg backup jadi saya memilih:
AcceptEnv BORG_*
Sekarang, pada klien gunakan -o SendEnv
opsi untuk mengirim variabel lingkungan. Baris perintah berikut menetapkan variabel lingkungan BORG_SECRET
dan kemudian menandainya untuk dikirim ke mesin klien (dipanggil backup
). Ini kemudian berjalan di printenv
sana dan memfilter output untuk variabel BORG:
$ BORG_SECRET=magic-happens ssh -o SendEnv=BORG_SECRET backup printenv | egrep BORG
BORG_SECRET=magic-happens