Ortam değişkenlerini açıkça ssh aracılığıyla geçirmek de mümkündür. Bazı sunucu tarafı kurulumları gerektirir, bu yüzden bu evrensel bir cevap değildir.
Benim durumumda, yedekleme deposu şifreleme anahtarını yedek depolama sunucusundaki bir komuta, o anahtar orada saklanmadan geçirmek istedim, ancak herhangi bir ortam değişkeninin içinde göründüğüne dikkat edin ps
! Anahtarı stdin'den geçirme çözümü de işe yarayacaktı, ancak bunu çok hantal buldum. Her durumda, bir ortam değişkenini ssh üzerinden şu şekilde geçirebilirsiniz:
Sunucuda, sshd_config
genellikle dosyayı düzenleyin ve iletmek istediğiniz değişkenlerle eşleşen /etc/ssh/sshd_config
bir AcceptEnv
yönerge ekleyin . Bakın man sshd_config
. Benim durumumda, değişkenleri borg yedeklemesine geçirmek istiyorum, bu yüzden şunu seçtim:
AcceptEnv BORG_*
Şimdi, istemcide -o SendEnv
ortam değişkenlerini gönderme seçeneğini kullanın. Aşağıdaki komut satırı ortam değişkenini ayarlar BORG_SECRET
ve ardından istemci makineye (çağrılır backup
) gönderilmek üzere işaretler . Daha sonra printenv
orada çalışır ve BORG değişkenleri için çıktıyı filtreler:
$ BORG_SECRET=magic-happens ssh -o SendEnv=BORG_SECRET backup printenv | egrep BORG
BORG_SECRET=magic-happens