Во-первых, посмотрите, можете ли вы установить для нас подключение без пароля к серверу (обратитесь к администратору сервера и посмотрите свои ssh-keygen
и ssh-copy-id
справочные страницы)
В противном случае, запись учетных данных для входа на дискплохая безопасность, но иногда неизбежная.Убедитесь, что вы не даете файлу никаких прав на чтение / запись для других (chmod 600 config_file
)
Предположим, вы хотите иметь файл конфигурации со следующим содержимым:
set host hostname
set user username
set pass "user password"
Затем вы можете выполнить скриптпросто source
файл для установки этих переменных в вашем интерпретаторе Tcl.
В целях безопасности, в случае, если этот файл будет скомпрометирован какими-то злыми командами, вы можете использовать "безопасный интерпретатор" Tcl
interp create -safe safeInterp
safeInterp invokehidden source $configFile
# extract the variables from the safe interp
lassign [safeInterp eval {list $host $user $pass}] host user pass
spawn scp $user@$host:/path/to/remote/file /local/file
...