407 Требуется аутентификация прокси - apt

Как упоминалось в других ответах, expect может решить эту проблему. Я закончил с чем-то вроде этого, сохранил как reprepro.exp и выполнил его с помощью chmod 755 reprepro.exp

#!/usr/bin/expect -f

set timeout 5

set passphrase "$env(SIGNING_PASSWORD)"

# Call reprepro with variable length arguments, so that this script
# takes the same arguments as the original program
spawn reprepro {*}$argv

expect {
    timeout                     {send_error "\nFailed to get password prompt\n";
                                 exit 1}
    "Please enter passphrase*"  {send -- "$passphrase\r";
                                 send_user " *** entering passphrase ***";
                                 exp_continue}
}

# Get the pid, spawnid, oserr and exitcode from the spawned reprepro command
set returnvalues [wait]

# Extract the reprepro exit code
set exitcode [lindex $returnvalues 3]

# Exit with the exitcode from reprepro (0 on success)
exit $exitcode

Наличие одного оператора expect означает, что это также будет работать (т. Е. Не сбой), если пароль неправильный. Затем gpg запросит кодовую фразу три раза, а reprepro вернет код выхода, который не равен 0.

Вы можете экспортировать переменную среды SIGNING_PASSWORD в ваш .bashrc или заменить ее в скрипте реальным пароль или сделать что-то еще. Используйте необходимый уровень безопасности.

0
задан 30 August 2017 в 21:58

0 ответов

Другие вопросы по тегам:

Похожие вопросы: